当一个包里存在一个__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__列表中所有模块
讨论区