__init__.py文件的作用
主要作用
在使用python2的时候,我们被教导需要在作为python模块的目录中放置一个__init__.py
文件,否则python解释器不会将该目录视为python模块,而对于这种目录的import操作都会报错。
因此__init__.py
文件是python包的定义,当然如果使用python3.3或更高版本的朋友会提出质疑。下面我们就看一下在python2.7与python3.7中的演示。
将目录视作模块
注意:
这个特性在python3.3之后的版本已经开始抛弃,即使文件夹下没有
__init__.py
文件,该文件夹也可以被当做包引入
__init__.py
为空或非空的区别
如果只是将一个目录作为组织python代码的过渡,而不需要将其作为python包,那么使用空的__init__.py
文件或者不要这个文件都是可以的。如果需要将代码按照python包的方式组织,即包具有子模块属性,那么需要在__init__.py
文件中对子模块进行导入。
- 使用 import 引入
# __init__.py 文件
import xxx # 通过import 引入需要导出的包
__all__
这是init.py 文件独有的变量,它是一个列表,当使用 import *
导入某个包时,其实质是导入预先在__all__
这个列表内预先声明的模块,其他不会被导入进来