请稍候,加载中....

__init__.py的作用

当一个包里存在一个__init__.py文件,这个文件夹就是一个包,这个文件可以为空,那么这文件的作用是什么呢?

包对象初始化

__init__.py在模块第一次加载的时候会被执行,所包含的对象被绑定到该命名空间下

所以可以在__init__.py做一些初始化的事情

__init__.py示例

# package下的 __init__.py

print(__path__)

package导入的时候,__init__.py就会执行输出__path__(__path__是一个特殊变量,值为包含包的路径的列表)

输出 根据您的实际情况显示不同

['/Users/luxp/Python课件课程/基本语法/package']

 


指定导出模块列表

在没有__init__.py情况下,如下示例导入失败:

from package import  *

如果直接从包导入*,是无法导入模块的,如果希望导入成功,需要在__init__.py中如下指定:

# __init__.py
__all__ = ["mymodule"]

使用__all__变量声明需要导出的模块名称列表,这样就可以通过from package import *方式导入__all__列表中所有模块


Python学习手册-