python導入模塊時的執行順序


當python導入模塊,執行import語句時,到底進行了什么操作?按照python的文檔,她執行了如下的操作:

第一步,創建一個新的module對象(它可能包含多個module)

第二步,把這個module對象插到sys.module中

第三步,裝載module的代碼(如果需要,則必須先編譯)

第四步,執行新的module中對應的代碼。

在執行第三步時,首先需要找到module程序所在的位置,搜索的順序是:

當前路徑(以及從當前目錄指定的sys.path),pythonpath,然后是python安裝時設置的相關默認路徑。正因為存在這樣的順序,所以如果當前路徑或pythonpath中存在與標准module相同的module,則會覆蓋標准module。也就是如果當前目錄下存在xml.py,那么執行import xml時,導入的是當前目錄下的module,而不是系統標准的xml。所以我們平常起名字時不能亂起。

了解這些之后,我們就可以先構建一個package,以普通module的方式導入,這樣就可以直接訪問此package中的各個module。python2中package必須包含一個__init__.py的文件。擁有這個文件使得python解釋器將子目錄整個也當成一個模塊,然后直接通過“import 子目錄.模塊”導入即可。如果沒有這個文件就會被當成一個普通文件夾,而不是模塊。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM