__init__.py的作用¶
对于模块, 其有对应的*.py文件.
对于包, 包下的__init__.py文件就是其对应的程序文件.
导入包, 就等同于导入该包中的__init__.py文件, 因此完全可以在__init__.py文件中直接编写实现模块功能的变量, 函数和类,
但实际上并不推荐这么做, 因为包的主要作用是包含其它的模块.
因此, __init__.py文件的主要作用是导入该包内的其它模块, 而不再需要一个一个的导入.
也就是说, 通过在__init__.py文件中使用import语句将必要的模块导入, 这样当向其它程序中导入此包时, 就可以直接导入包名,
也就是import package或from package import *的形式即可.
在__init__.py文件中也可以定义__all__变量, 用来定义from package import *时导入的模块.
Example:
# __init__.py
__all__ = ['os', 'sys', 're', 'urlib']
# a.py
from package import *
# 导入在__init__.py文件中__all__列表中注册的模块和包