python模塊對(duì)應(yīng)python程序文件,每個(gè)python文件都是一個(gè)模塊。
模塊a.py導(dǎo)入模塊b.py后,在a.py可以使用使用b.py的全部變量。
1.1 python程序組成
python程序通常包括頂層主體文件、模塊文件、標(biāo)準(zhǔn)庫(kù)文件。
頂層主體文件通常是程序運(yùn)行入口,會(huì)導(dǎo)入模塊文件,模塊文件導(dǎo)入標(biāo)準(zhǔn)庫(kù)文件。

如上圖,main.py為頂層主體文件,程序從此文件開(kāi)始運(yùn)行。
main文件導(dǎo)入mod1.py模塊文件,使用里面的模塊屬性。
mod1.py模塊文件導(dǎo)入mod2.py和標(biāo)準(zhǔn)庫(kù)模塊文件。
標(biāo)準(zhǔn)庫(kù)模塊文件為python自帶模塊文件。
1.2 python導(dǎo)入模塊
python導(dǎo)入模塊在程序運(yùn)行時(shí)執(zhí)行。
python首次導(dǎo)入模塊,會(huì)執(zhí)行三個(gè)步驟:
| 步驟 | 步驟名稱 | 步驟描述 |
|---|---|---|
| 1 | 搜索 | 通過(guò)模塊搜索路徑找到模塊文件 |
| 2 | 按需編譯 | 首次導(dǎo)入需要編譯,生成.pyc文件。若.pyc文件時(shí)間戳小于.py文件,則進(jìn)行編譯。只有.pyc則直接加載,不進(jìn)行編譯。 |
| 3 | 運(yùn)行 | 從上到下執(zhí)行模塊代碼,創(chuàng)建模塊定義的對(duì)象。 |
python將導(dǎo)入的模塊存儲(chǔ)到sys.modules字典中,
每次導(dǎo)入模塊時(shí)檢查sys.modules是否存要導(dǎo)入的模塊,
若存在,則不再導(dǎo)入(跳過(guò)首次導(dǎo)入模塊的3個(gè)步驟),直接從內(nèi)存獲取模塊,
若不存在,則執(zhí)行首次導(dǎo)入模塊的3個(gè)步驟。
注:導(dǎo)入模塊后,模塊文件被更新,通過(guò)reload導(dǎo)入最新模塊文件。
1.3 python模塊搜索路徑
python通過(guò)模塊搜索路徑找到模塊文件進(jìn)行導(dǎo)入。
按下面順序搜索模塊搜索路徑,這4個(gè)路徑組成sys.path:
| 順序 | 路徑 |
|---|---|
| 1 | 程序主目錄 |
| 2 | PYTHONPATH目錄(若有),用于路徑拓展 |
| 3 | 標(biāo)準(zhǔn)庫(kù)目錄 |
| 4 | .pth文件(若有),用于路徑拓展 |
1.4 python模塊路徑sys.path
python的模塊搜索路徑保存在sys.path列表。
手動(dòng)添加到sys.path列表的路徑,在程序結(jié)束后,將不會(huì)再生性。
1.5 python模塊避免重名
模塊搜索路徑存在重名模塊時(shí),導(dǎo)入的模塊存在不確定性,所以pthon模塊應(yīng)該避免重名。
-
模塊
+關(guān)注
關(guān)注
7文章
2819瀏覽量
52593 -
編程語(yǔ)言
+關(guān)注
關(guān)注
10文章
1957瀏覽量
38685 -
python
+關(guān)注
關(guān)注
56文章
4850瀏覽量
89313
發(fā)布評(píng)論請(qǐng)先 登錄
Python程序員必須掌握從Python2到Python3的轉(zhuǎn)型
如何使用Python編寫(xiě)一個(gè)簡(jiǎn)單的程序
Python的函數(shù)文件與模塊的程序說(shuō)明
Python的程序設(shè)計(jì)資料合集
Python字符數(shù)統(tǒng)計(jì)函數(shù)程序
如何在Windows下使用 Supervisor 重新拉起崩潰的Python程序
python寫(xiě)完程序之后怎么運(yùn)行
python怎么運(yùn)行程序
如何運(yùn)行Python程序
運(yùn)行Python程序的幾種常見(jiàn)方法
python程序的文件擴(kuò)展名
如何使用linux下gdb來(lái)調(diào)試python程序
零基礎(chǔ)入門(mén):如何在樹(shù)莓派上編寫(xiě)和運(yùn)行Python程序?

python程序組成
評(píng)論