1. 在python 模块的每一个包中,都有一个__init__.py文件。每个Python包中必须包含该文件。如果 __init__.py 不存在,这个目录就仅仅是一个目录,而不是一个包,它就不能被导入或者包含其它的模块和嵌套包。
2. 包通常总是一个目录,除了 __init__.py文件外,还有一些模块文件和子目录,假如子目录中也有 __init__.py 那么它就是这个包的子包了。
3. __init__.py 文件会在包被导入时被执行。
4. __init__.py文件定义了包的属性和方法。其实它可以什么也不定义;可以只是一个空文件,但是必须要存在。__init__.py 中还有一个重要的变量,叫做 __all__。我们有时会使出一招“全部导入”,import 就会把注册在包 __init__.py 文件中 __all__ 列表中的子模块和子包导入到当前作用域中来。
要注意的是,__init__.py文件跟__init__方法是完全不一样的事情。__init__方法在类的一个对象被建立时会被自动马上运行。因此__init__这个方法可以用来对你的对象做一些你希望的初始化工作。