假定我們的包的例子有如下的目錄結構:
phone/
__init__.py
common_util.py
voicedta/
__init__.py
pots.py
isdn.py
fax/
__init__.py
g3.py
mobile/
__init__.py
analog.py
igital.py
pager/
__init__.py
numeric.py
phone 是最頂層的包,voicedta 等是它的子包。 我們可以這樣匯入子包:
import phone.mobile.analog
phone.mobile.analog.
dial
()
你也可使用 from-import 實現不同需求的匯入。
第一種方法是只匯入頂層的子包,然後使用屬性/點操作符向下引用子包樹:
from phone import mobile
mobile.analog.
dial
('555-1212'
)
此外,我們可以還引用更多的子包:
from phone.mobile import analog
analog.
dial
('555-1212'
)
事實上,你可以一直沿子包的樹狀結構匯入:
from phone.mobile.analog import dial
dial
('555-1212'
)
在我們上邊的目錄結構中,我們可以發現很多的 __init__.py 檔案。這些是初始化模組,from-import 語句匯入子包時需要用到它。 如果沒有用到,他們可以是空檔案。 程式設計師經常忘記為它們的包目錄加入 __init__.py 檔案,所以從 python 2.5 開始,這將會導致乙個 importwarning 資訊。
不過,除非給直譯器傳遞了 -wd 選項,否則它會被簡單地忽略。
包同樣支援 from-import all 語句:
from package.module import
*
然而,這樣的語句會匯入哪些檔案取決於作業系統的檔案系統。所以我們在__init__.py 中加入 __all__ 變數。該變數包含執行這樣的語句時應該匯入的模組的名字。它由乙個模組名字串列表組成.。
47 Python高階小結
目錄 三 資料型別內建方法 3.2 字串型別內建方法 3.3 列表型別內建方法 3.4 元祖型別內建方法 3.5 字典型別內建方法 3.6 集合型別內建方法 3.7 布林型別 四 資料型別分類 萬能捕捉異常公式 try 邏輯 1 0except exception as e print e divi...
python 包的匯入
1,包 定義 把解決一類問題的模組放在同乙個資料夾裡 匯入語法 在import from.import匯入語句中 而不是在使用時 遇到帶點的 本質 就是乙個包含 init py檔案的目錄,在py2中,必須有 init py檔案,py3沒有也可以執行。包只是模組的一種形式而已,包即模組,是為了匯入方便...
python導包 Python中包的匯入
15 june 2015 當你從python直譯器退出後再重新進入,之前所寫的 包括變數 函式都已經不存在了,如果你想週期性的執行這些功能但是並不想每次都將這些 重新輸入一遍,你可以將這些 儲存成檔案在本地進行儲存 也就是指令碼 當你寫的程式規模越來越大,維護起來越發吃力,你或許會想把它分割為不同功...