当采用IDE新建一个package时,IDE一般会自动生成一个__init__.py文件,那么这个文件有什么作用?
我理解__init__.py 类似于Python中__init__(self)方法,类似于模块的构造函数,在对模块进行import时,会自动加载并解析__init__.py 文件。
因此,可以利用__init__.py 对 package 进行一些操作。
限制包的引出模块
通过在__init__.py 文件中添加 all = [] 指定package 可以对外引出的 类 。
添加package 中代码公用引入信息,减少重复代码
如 logging 模块中 最外层代码中__init__.py中 存在
import sys, os, time, io, traceback, warnings, weakref, collections
添加package模块公用初始化信息
类似于import 代码 添加模块初始化信息,减少代码重复。
总之__init__.py 既是package的标志,也是一个py文件,且在import 模块时加载,因此可以将模块中通用的代码放入__init__py,也可以现在模块对外开放的信息。