__init__.py文件的作用

时间:2022-05-09 15:44:36
__init__.py文件的作用是将文件夹变为一个python包,每个包目录下都会有一个__init__.py文件,这个文件是必须存在的,否则,python就把这个目录当成普通目录,而不是一个包。__init__.py可以是一个空文件,也可以有python 代码。

我们在导入一个包时,实际上导入了它的__init__.py文件,并且这个文件会自动执行,所以我们可以在__init__.py文件中做一些包导入时的一些初始化工作。

比如,我们可以在__init__.py文件中导入其他模块或者包:
# package_a
# __init__.py
import math
import urllib
import matplotlib
import gensim
如上,我们在导入package_a 时,__init__.py 被执行,那么上面的import包也会被导入。

另外,__init__.py 中还有一个重要的变量,叫做 __all__。有时候我们会把一个模块中的所有内容导入,如使用

from PackageName import *

这时 import 就会把注册在包 __init__.py 文件中 __all__ 列表中的子模块和子包导入到当前作用域中来。比如:
# __init__.py
__all__ = ["Module1", "Module2", "subPackage1", "subPackage2"]