__init__.py 文件在 Python 包中具有以下几个主要作用:
- 
	
标识包目录:
- 
		
当一个目录包含
__init__.py文件时,Python 会将其视为一个包(package)。即使__init__.py文件为空,它也能让 Python 识别该目录为一个包。 
 - 
		
 - 
	
初始化包:
- 
		
__init__.py文件在包被导入时自动执行,通常用于执行包的初始化代码,例如设置包级别的变量、导入子模块或执行其他初始化操作。 
 - 
		
 - 
	
控制导入行为:
- 
		
可以在
__init__.py中定义__all__变量,明确指定通过from package import *时导入哪些模块或子包。 - 
		
也可以在
__init__.py中导入包内的模块或子包,简化外部调用时的导入路径。 
 - 
		
 - 
	
提供包级别的接口:
- 
		
可以在
__init__.py中导入包内的函数、类或变量,使外部调用时可以直接从包名导入,而不需要深入到子模块。 
 - 
		
 - 
	
兼容性:
- 
		
在 Python 3.3 及以上版本中,
__init__.py不再是必需的(称为“隐式命名空间包”),但为了兼容性和明确性,通常仍会保留。 
 - 
		
 
示例
假设有一个包结构如下:
mypackage/
    __init__.py
    module1.py
    module2.py
在 __init__.py 中可以这样写:
# 导入包内的模块 from .module1 import my_function from .module2 import MyClass # 定义 __all__ 变量 __all__ = ['my_function', 'MyClass']
这样,外部代码可以这样导入:
from mypackage import my_function, MyClass
总结来说,__init__.py 文件是 Python 包的重要组成部分,用于标识包、初始化代码、控制导入行为以及提供包级别的接口。