一、模塊的簡(jiǎn)介
- 模塊化指將?個(gè)完整的程序分解成?個(gè)個(gè)的?模塊,通過(guò)將模塊組合,來(lái)搭建出?個(gè)完整的程序。
- 模塊化的優(yōu)點(diǎn):
1、方便開發(fā)與維護(hù);
2、提高程序的復(fù)用性!
二、模塊的創(chuàng)建
- 在Python當(dāng)中?個(gè)py?件就是?個(gè)模塊,在?個(gè)模塊中引?外部模塊:
1、import 模塊名(模塊名就是py?件) ,注意py文件要和執(zhí)行的模塊文件要在同一個(gè)文件夾下!
eg.
image.png

image.png
由上圖可知,直接打印模塊名可得到其路徑!
- 可以引?同?個(gè)模塊多次,但是模塊的實(shí)例只會(huì)創(chuàng)建執(zhí)行?次!
2、import+模塊名+as+模塊別名
eg.

image.png
- 在每?個(gè)模塊內(nèi)部都有?個(gè)__name__,通過(guò)它我們可以獲取模塊的名字!
如果模塊(py?件)直接運(yùn)?時(shí),那么__name__默認(rèn)等于字符串'__main__',表示當(dāng)前文件為主文件!即當(dāng)__name__=='__main__'時(shí)表示此時(shí)運(yùn)行的模塊為主文件,或者叫主文件入口!
eg.
image.png
__name__屬性值為__main__的模塊是主模塊。?個(gè)程序中只有?個(gè)主模塊!
三、模塊的使用
3.1 訪問(wèn)模塊中的變量
語(yǔ)法:模塊名.變量名
eg.

image.png
3.2 訪問(wèn)模塊中的函數(shù)
語(yǔ)法:模塊名.函數(shù)名
eg.

image.png
3.3 訪問(wèn)模塊中的對(duì)象
語(yǔ)法:模塊名.對(duì)象名
3.4 訪問(wèn)模塊中的部分內(nèi)容
1、語(yǔ)法:from+模塊名+import+變量1,變量2,變量3...
eg.

image.png
2、語(yǔ)法:from+模塊名+import+*
eg.

image.png
由上圖可知,主模塊的fx函數(shù)會(huì)被覆蓋!由此引入下一種方法:
3、語(yǔ)法:from+模塊名+import+變量+as+別名
eg.

image.png
PS:
1、數(shù)據(jù)不可能完全私有,所以看到綠色的波浪線時(shí),要去引用的模塊種看下程序!

image.png
_c是被封裝的變量!
2、子模塊中的測(cè)試代碼不希望在主模塊中運(yùn)行,則可以在子模塊中使用到:
if __name__=='__main__': ### 主文件入口
防止主模塊執(zhí)行這段子模塊中的測(cè)試代碼!
eg.

image.png
四、迭代器&生成器
4.1 迭代器
-
訪問(wèn)元素的一種方式(即需要遍歷),是可以記住遍歷位置的對(duì)象(元素)。迭代器也是從序列中的第一個(gè)元素訪問(wèn),直到所有的元素被訪問(wèn)完結(jié)束!
方法:iter() next()
eg.
image.png

image.png
停止迭代!
標(biāo)準(zhǔn):

image.png
4.2 生成器
- 在Python中使用yield這個(gè)關(guān)鍵字我們稱之為生成器或者生成器函數(shù)!
-
生成器和普通函數(shù)的區(qū)別:生成器返回的是一個(gè)迭代器的函數(shù),只用于迭代作用!
語(yǔ)法:
yield+變量
next(變量)
即在當(dāng)前位置繼續(xù)訪問(wèn)?。?!同時(shí)注意打印時(shí)的先后順序,與return有區(qū)別!?。?/strong>
eg.
image.png



