包,Package,是一種Python模塊的集合,從文件組織形式上看,包就是一個文件夾,里面放着各種模塊(.py文件),也可以有子文件夾(子包)。包名構建了一個Python模塊的命名空間。比如,模塊名A.B
表示A
包中名為B
的子模塊。這種使用加點的模塊名可以讓你寫的軟件包里面的模塊名稱和其它軟件包里面的模塊名稱一樣,但又不相互沖突。
現在,你必須開始遵守用以組織你的程序的層次結構。變量通常位於函數內部,函數與全局變量通常位於模塊內部。如果你希望組織起這些模塊的話,應該怎么辦?這便是python包(Packages)應當登場的時刻。
包是指一個包含模塊與一個特殊的 __init__.py
文件的文件夾,后者向 Python 表明這一文件夾是特別的,因為其包含了 Python 模塊。
讓我們這樣設想:你想創建一個名為“world”的包,其中還包含着 “asia”、“africa”等其它子包,同時這些子包都包含了諸如“india”、 “madagascar”等模塊。
下面是你會構建出的文件夾的結構:
- <some folder present in the sys.path>/ - world/ - __init__.py - asia/ - __init__.py - india/ - __init__.py - foo.py - africa/ - __init__.py - madagascar/ - __init__.py - bar.py
包是一種能夠方便地分層組織模塊的方式。你將在 標准庫 中看到許多有關於此的實例。
總結
如同函數是程序中的可重用部分那般,模塊是一種可重用的程序。包是用以組織模塊的另一種層次結構。Python 所附帶的標准庫就是這樣一組有關包與模塊的例子。
我們已經了解了如何使用這些模塊並創建你自己的模塊。
接下來,我們將學習一些有趣的概念,它們被稱作數據結構。