详细解释:https://mp.weixin.qq.com/s/5RW_wd1J9RsyX99Zbm_G0g
总结:
- 当 import 一个 Package 的时候,它会隐性的去执行此文件, 而在此文件中定义的对象,会被绑定到当前的命名空间里面来。
- 在 Python3.2 版本之前,定义的 Package 下面一定要有此文件,这样 Python 才知道它是一个 Package,才可以寻找到相关模块的路径从而被 import。
- 综上,这个 init 文件会在 import 的时候被执行,而空的init文件在 Python 新版本中(version >= 3.2)已经不需要你额外去定义了,因为就算你不定义 init, Python 也知道你导入的包路径,但是如果你想要做一些初始化操作,或者像我们刚刚说的预先导入相关的模块,那么定义此 init 文件还是很有必要的。