-
__init__.py
是包的一部分,当包被导入的时候,__init__.py
是被隐式的执行。
- 同时如果目录中有
__init__.py
说明这个目录是一个包,因此在下面的例子中,如果此时的所在的path
是mydir
的话,可以使用命令import spam.module
导入module.py
中的东西,或者from spam import module
,如果没__init__.py
的时候,Python
将不再在该目录中查找子模块,因此导入模块的尝试将失败。
-
__init__.py
文件经常是空的,但是可以在__init__.py
里面控制使用包里面特定的部分,
mydir/spam/__init__.py
mydir/spam/module.py
- 使用
__init__.py
主要有两个好处,一个好处是,可以很方便的导入这个文件夹中是任何包,比如你有下面的文件结构,导入add
的时候可以from your_package import add
,而不用from your_package.file1 import add
,第二个好处是可以在__init__.py
对模型进行初始化,比如对logging.config
进行初始化,毕竟调用包的时候首先会执行__inti__.py
your_package/
__init__.py
file1.py/
file2.py/
...
fileN.py
# in __init__.py
from file1 import *
from file2 import *
...
from fileN import *
# in file1.py
def add():
pass
- 还有一个重要的特性是即使一个包被调用很多次,他的
__init__.py
也只执行一次。
网友评论