參考:深入理解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在物件建立時執行操作。在物件析構時執行操作。注意 ...