python3精要(34)-import工作原理
1、import導(dǎo)入模塊,不是將一個(gè)文件插入到另一個(gè)文件中,它額外做了以下三方面工作:
(1)搜索找到模塊文件
使用標(biāo)準(zhǔn)模塊搜索路徑找到該模塊文件,并沒有指定文件所在路徑,可以是以點(diǎn)號分隔的相對路徑名。
(2)編譯成字節(jié)碼(需要時(shí))
檢查模塊文件的時(shí)間戳,如果比字節(jié)碼pyc時(shí)間晚,說明模塊文件已經(jīng)修改,則重新編譯成字節(jié)碼。如果‘沒有發(fā)現(xiàn)模塊文件的源文件,只有pyc,則跳過源文件,不編譯。
(3)執(zhí)行模塊代碼
這3方面工作只會在第一次導(dǎo)入時(shí)進(jìn)行。
模塊文件的所有代碼得到運(yùn)行。
2、python將導(dǎo)入的模塊存儲在sys.modules字典中,并在第一次導(dǎo)入操作時(shí)檢查該表,如果已經(jīng)導(dǎo)入,在字典中將找到,于是不會執(zhí)行1中講述的3個(gè)工作。
3、python的模塊搜索路徑4部分:
(1)程序的主目錄
運(yùn)行的程序頂層腳本文件所在路徑。
(2)PYTHONPATH路徑
環(huán)境變量
(3)標(biāo)準(zhǔn)鏈接庫目錄
python默認(rèn)存放標(biāo)準(zhǔn)庫的路徑
(4)任何.pth文件內(nèi)容
一個(gè)文本文件,每行一個(gè)路徑
放在python安裝目錄或python標(biāo)準(zhǔn)庫路徑
總結(jié)
以上是生活随笔為你收集整理的python3精要(34)-import工作原理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用 @ControllerAdvice
- 下一篇: python3精要(35)-wxPyth