__init__.py
是 Python 包(package)机制的关键文件。简单来说,它的作用就是 把一个目录变成 Python 可以识别的包,从而允许你用 import
来导入其中的模块。
__init__.py
,那它就只是普通文件夹,不能当作包导入。__init__.py
,Python 解释器会把这个目录当作一个 包。举个例子:
project/
mypkg/
__init__.py
module1.py
module2.py
你就能写:
import mypkg.module1
如果没有 __init__.py
,就会报错。
__init__.py
本身 可以是空的,但也可以写代码。
常见用途有:
控制包的导出内容:通过 __all__
定义哪些模块/函数可以被 from mypkg import *
导入。
__all__ = ["module1", "module2"]
简化导入路径:在 __init__.py
里直接导入子模块,这样用户用起来更方便。
from .module1 import func1
from .module2 import func2
这样就能:
from mypkg import func1, func2
__init__.py
,也能把目录当作包。但在实际项目里,__init__.py
依然很常见,主要是:
可以把 __init__.py
看成 包的门卫: