• 包是一个分层次的文件目录结构,它定义了一个由模块及子包,和子包下的子包等组成的 Python 的应用环境。
  • 简单来说,包就是文件夹,但该文件夹下必须存在 init.py 文件, 该文件的内容可以为空。init.py 用于标识当前文件夹是一个包。
  • 考虑一个在 packagerunoob 目录下的 runoob1.py、runoob2.py、_init.py 文件,test.py 为测试调用包的代码,目录结构如下:
  1. test.py
  2. package_runoob
  3. |-- __init__.py
  4. |-- runoob1.py
  5. |-- runoob2.py

源代码如下:

  • package_runoob/runoob1.py
  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. def runoob1():
  4. print "I'm in runoob1"
  • package_runoob/runoob2.py
  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. def runoob2():
  4. print "I'm in runoob2"
  • 现在,在 packagerunoob 目录下创建 _init.py:
  • packagerunoob/_init.py
  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. if __name__ == '__main__':
  4. print '作为主程序运行'
  5. else:
  6. print 'package_runoob 初始化'

然后我们在 package_runoob 同级目录下创建 test.py 来调用 package_runoob 包

  • test.py
  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. # 导入 Phone 包
  4. from package_runoob.runoob1 import runoob1
  5. from package_runoob.runoob2 import runoob2
  6. runoob1()
  7. runoob2()
  • 以上实例输出结果:
    1. package_runoob 初始化
    2. I'm in runoob1
    3. I'm in runoob2

如上,为了举例,我们只在每个文件里放置了一个函数,但其实你可以放置许多函数。你也可以在这些文件里定义Python的类,然后为这些类建一个包。