包的结构
为了更好地组织Python代码,开发人员通常会根据不同业务将模块进行归类划分,并将功能相近的模块放到同一目录下。如果想要导入该目录下的模块,就需要先导入包。
Python中的包是一个包含__init__.py
文件的目录,该目录下还包含一些模块以及子包。下面是一个简单的包的结构。
package
├── __init__.py
├── module_a1.py
└── module_a2.py
└── package_b
├── __init__.py
└── module_b.py
包的存在使整个项目更富有层次,也可在一定程度上避免合作开发中模块重名的问题。包中的__init__.py
文件可以为空,但必须存在,否则包将退化为一个普通目录。
值得一提的是,__init__.py
文件有两个作用,第一个作用是标识当前目录是一个Python的包;第二个作用是模糊导入,如果__init__.py
文件中没有声明__all__
属性,那么使用from ... import *导入的内容为空。