Python中的包和模块实例

一、实例和结果

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环境变量中。