深入理解python的package機制

2021-10-03 04:33:03 字數 1131 閱讀 6992

參考:深入理解python package

模組就是python檔案,裡面包含著**(類)。包是乙個包含__init__.py的資料夾。

三者的關係就是:模組包含類,包至少包含乙個名為__init__.py的模組。

乙個包的例子如下:

package

├── __init__.py

├── submodule.py

└── subpackage

└── __init__.py

如果乙個資料夾裡面有__init__.py,那麼python直譯器就會將這個資料夾看做包。__init__.py告訴了python直譯器,匯入這個包的時候實際要匯入什麼內容。

如果__init__.py中定義了__all__變數(乙個list),那麼僅僅只有這個__all__變數中定義的內容才會被匯入。也就是說:__all__變數是告訴pythonfrom package import *的時候,那個*到底代表著什麼。

如果沒有定義__all__變數,python的匯入規則是這樣的:

執行__init__.py中可被執行的**

__init__.py中定義的變數被匯入

__init__.py中顯式匯入的模組被匯入

假如現在package裡面的__init__.py為空。如果import package,實際上匯入的是乙個空包,因為__ini__.py告訴python直譯器,匯入這個包的時候實際上什麼都別匯入。

但是如果執行import package.subpackage,是可以成功的。因為這個時候python是根據路徑找到的subpackage,而不是根據__init__.py提供的資訊。

python深入 Python的深入理解

處理檔案和目錄 python 3 帶有乙個模組叫做 os,代表 作業系統 operating system os 模組 包含非常多的函式用於獲取 和修改 本地目錄 檔案程序 環境變數等的資訊。python 盡最大的努力在所有支援的作業系統上提供乙個統一的api,這樣你就可以在保證程式能夠在任何的計算...

Python的深入理解

處理檔案和目錄 python 3 帶有乙個模組叫做 os,代表 作業系統 operating system os 模組 包含非常多的函式用於獲取 和修改 本地目錄 檔案程序 環境變數等的資訊。python 盡最大的努力在所有支援的作業系統上提供乙個統一的api,這樣你就可以在保證程式能夠在任何的計算...

深入理解Python類

c 中,類有兩個關鍵的內建函式,建構函式和析構函式。在python中,其實也有類似的函式,他們就是 def init self pass def del self pass def enter self pass def exit self pass在物件建立時執行操作。在物件析構時執行操作。注意 ...