__init__.py的主要作用
Python中 package的标识
在__init__.py中定义__all__用来模糊导入
编写Python代码(不建议这么做,实际的逻辑可以在其他py文件中写,__init__.py应该尽量轻)
package标识
在pycharm中new,有Directory和Python Package两个选项。
分别创建Directory和package,发现前者只是一个空目录,后者包含一个__init__.py文件。
这就是__init__.py的package标识作用,他告诉python,这不是一个普通的目录而是一个package。
有__init__.py文件的情况下,可以识别init_test

删除掉__init__.py文件,识别不了init_test

定义__all__用来模糊导入
在python中有两种导入方式:
精确导入
from init_test import test
import init_test.test
模糊导入
from init_test import *
这种语法会将init_test包下的所有模块都导入到当前py文件中,效果如下:
很奇怪没有将三个test模块导入(test模块中有打印自己的名称,因为是直接print所以如果导入就会执行)
在__init__.py中加入__all__变量,然后执行:
__all__ = ['test','test1','test2']
现在已经成功导入,这就是定义__all__用来控制模糊导入的作用,对外能导入的模块由__all__变量控制。
————————————————
版权声明:本文为优快云博主「正在喝茶」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/qaning1472/article/details/85918341
__init__.py在Python中标识package,使目录被视为软件包。通过定义__all__,可控制从包中模糊导入哪些模块。本文详细解释了__init__.py的作用及__all__的使用。
793

被折叠的 条评论
为什么被折叠?



