Python 包 __init__.py 作用

  • 包的初始化

    Python首次导入某个目录时,会自动执行该目录下__init__.py文件所有程序的代码。这类文件就是放置包类文件所需要初始化的代码的场所。

  • 模块命名空间的初始化

    在包导入模型中,脚本内的目录路径,在导入后会变成真实的嵌套对象路径。比如,在包test__init__.py中定义了a = 1,那么,在我们import test之后,可以得到

    1
    2
    3
    >>import test
    >>test.a
    1
  • from*语句的行为

    可以在__init__.py中使用__all__列表定义目录以 from package import *导入时,是导入哪些模块。若定义了__all__ = ["Module1", "Module2", "subPackage1", "subPackage2"],当使用from package import *时,就会默认导入"Module1", "Module2", "subPackage1", "subPackage2"模块。