python代码中的__init__.py文件有什么用?
发布于 作者:苏南大叔 来源:程序如此灵动~
在python代码文件中,经常会出现一个__init__.py文件。顾名思义,这个文件就是用来初始化python结构的,可以自动执行一些代码。

大家好,这里是苏南大叔的博客“程序如此灵动”。本文讲述python代码中的__init__.py文件。测试环境:win10,python3.6.8。
import时,自动执行代码
在执行import引入模块代码的时候,会自动执行模块下的__init__.py文件里面的相关代码,路径上涉及的多个__init__.py文件都会被自动执行。测试文件目录结构如下:

主程序代码是:
from root.sub1 import s11
import root.sub1.s12其余文件的代码,都是:
print(__file__)可以看到主程序import的路径上,涉及了2个__init__.py文件,都被自动执行了。而且在同一个py文件中,这些自动执行的__init__.py文件,每个只执行一次,这些表现上来看,有点像php的require_once函数。

特殊变量__all__
在__init__.py定义变量__all__,可以控制import *的具体条目。想让谁代表大家就加载谁,定义一个数组就行了。

不定义__all__的话,目前的测试结果是不引入任何文件,似乎有些不够智能。

主程序代码如下:
from root.sub3 import *不能写成
import root.sub3.*直接报错。

相关链接
总结
未知的东西太多,学不过来。承认自己的平凡,挺好的。