一 執行個體和結果
1) 執行個體的結構和具體的檔案:
PyPackage
│ PyCommonM.py
│ __init__.py
│
├─p1Package
│ P1M.py
│ P1MC.py
│ __init__.py
│
└─p2
P2.py
P2M.py
2) PyCommonM.py
def PyCommonMF(): print "PyCommonMF"
3) P1M.py:
def P1MF(): print 'P1MF'
4) P1MC.py:
class P1MC():
@staticmethod
def P1MCF(): print 'P1MCF'
5)P2M.py:
def P2MF(): print 'P2MF'
6) P2.py:
import P2M
from PyPackage import PyCommonM
from PyPackage.p1Package import P1M
from PyPackage.p1Package.P1MC import P1MC
def P2F():
print 'P2F'
if __name__ == '__main__':
P2F()
P2M.P2MF()
P1M.P1MF()
P1MC.P1MCF()
PyCommonM.PyCommonMF()
7) 運行p2.py的結果:
P2F
P2MF
P1MF
P1MCF
PyCommonMF
二 解釋
* 一個py檔案為一個module,例如module: PyCommonM.py,P2M.py,P1MC.py, P1M.py 。
* 包含__init__.py的檔案夾為一個package,例如package: PyPackage,p1Package。
* 可以直接使用import來引用相同目錄下的其他的module, 例如p2.py中的import P2M。
* 通過from import來引用其他的目錄下且屬於某個package的module,例如py.py中的from PyPackage import PyCommonM 和 from PyPackage.p1Package import P1M。
* 通過from import來引用某個module中的類,例如from PyPackage.p1Package.P1MC import P1MC
注意package所在的目錄必須在pythonpath環境變數中。
完!