## Python中的包
包是一個分層次的文件目錄結構,它定義了一個由模塊及子包,和子包下的子包等組成的 Python 的應用環境。
簡單來說,包就是文件夾,但該文件夾下必須存在 \_\_init\_\_.py 文件, 該文件的內容可以為空。**\_\_init\_\_.py**用于標識當前文件夾是一個包。
考慮一個在**package\_yingtai**目錄下的**yingtai1.py、yingtai2.py、\_\_init\_\_.py**文件,test.py 為測試調用包的代碼,目錄結構如下:
~~~
test.py
package_yingtai
|-- __init__.py
|-- yingtai1.py
|-- yingtai2.py
~~~
源代碼如下:
```
#!/usr/bin/python
# -*- coding: UTF-8 -*-
def yingtai1():
print "I'm in yingtai1"
```
```
#!/usr/bin/python
# -*- coding: UTF-8 -*-
def yingtai2():
print "I'm in yingtai2"
```
現在,在**package\_yingtai**目錄下創建**\_\_init\_\_.py**:
```
#!/usr/bin/python
# -*- coding: UTF-8 -*-
if __name__ == '__main__':
print '作為主程序運行'
else:
print 'package_yingtai 初始化'
```
然后我們在**package\_yingtai**同級目錄下創建 test.py 來調用**package\_yingtai**包
## test.py
```
#!/usr/bin/python
# -*- coding: UTF-8 -*-
# 導入 Phone 包
from package_yingtai.yingtai1 import yingtai1
from package_yingtai.yingtai2 import yingtai2
yingtai1()
yingtai2()
```
以上實例輸出結果:
~~~
package_yingtai 初始化
I'm in yingtai1
I'm in yingtai2
~~~
如上,為了舉例,我們只在每個文件里放置了一個函數,但其實你可以放置許多函數。你也可以在這些文件里定義Python的類,然后為這些類建一個包。