Python入門課程NO76課 模塊的導入機制
上節課講到import可以進行模塊的導入操作,通過improt導入后Python解釋器會自動將導入的模塊名寫入到內置模塊sys的modules屬性中。 sys.modules是一個字典對象,鍵名為模塊名。
模塊導入成功以后,Python會在sys.modules中進行記錄。在導入的過程中,會首先在sys.modules中進行查找,如果查找失敗,按"就近原則",會首先在當前目錄進行查找,查找是否有同名的模塊腳本,如果又查找失敗,Python解釋器接下來會去環境變量PYTHONPATH中進行查找,最后再去Python的系統目錄中進行查找。如果查找成功,Python解釋器會對模塊進行編譯,將其轉譯成字節碼。
Python是一種解釋型語言,解釋性語言與C/C++等編譯型語言的一個很重要的區別在于,Python解釋器會先將Python程序轉譯成中間代碼,這里的中間代碼是Python字節碼。Python將模塊轉譯成Python字節碼以后,將字節碼載入到內存中,在內存中對字節碼逐條地解釋執行。
程序運行結束以后,在windows系統中會在模塊的目錄下生成一個__pycache__的目錄,目錄下面的pyc文件即為python字節碼。在Linux系統中會直接在模塊的目錄中生成pyc文件。如果未對模塊進行修改,Python下次進行模塊導入時,會直接使用字節碼文件,這樣就提升了程序的執行效率。

- 上一篇
Python入門課程NO75課 什么是模塊
一個腳本就是一個模塊,在之前的課程中我們知道在腳本程序中定義的函數,可以在下文中被調用,同樣,它也可以在其他腳本程序中調用,其實,在上節課我們已經使用了 import 進行模塊的導入。import語句:將常用的功能分離到一個模塊中,然后在其它模塊中進行復用,這是模塊的一
- 下一篇
Python入門課程NO77課 package是什么
package,即通常所說的包結構,是一種包裹模塊文件的目錄結構。通俗地來進行解釋,package是一個模塊倉庫。可以通俗的理解為一個目錄文件夾就是一個package,比如下圖中的Lib和pip都是package。package也是對象,可以理解為一種命名空間對象。Python中的類有一個特殊的__init