python中的包
阿新 • • 發佈:2018-10-05
com 實現 操作系統 模塊名 屬性 mon 組織 初始 util
包將有聯系的模塊組織在一起,可以避免模塊名稱沖突問題,讓應用組織結構更加清晰
假定我們的包的例子有如下的目錄結構:
Phone/ _init_.py common_util.py Voicedta/ _init_.py Post.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語句導入子包時需要用到它。如果沒有用到,可以說是空文件。
包同樣支持 from-import all 語句
from package.module import *
然而,這樣的語句會導入哪些文件取決於操作系統的文件系統。所以在_init_.py中加入_all_變量。該變量包含執行這樣的語句時一個個導入的模塊的名字。它由一個模塊名字符串列表組成。
python中的包