一尘不染

__init__.py 是干什么用的?

python

__init__.pyPython 源目录中的用途是什么?


阅读 185

收藏
2022-01-23

共2个答案

一尘不染

它曾经是包的必需部分(旧的,3.3 之前的“常规包”,而不是较新的 3.3+“命名空间包”)。

这是文档。

Python 定义了两种类型的包,常规包和命名空间包。常规包是 Python 3.2 及更早版本中存在的传统包。常规包通常实现为包含__init__.py文件的目录。当一个常规包被导入时,这个__init__.py文件被隐式执行,它定义的对象被绑定到包命名空间中的名字。该__init__.py文件可以包含任何其他模块可以包含的相同 Python 代码,并且 Python 会在导入模块时为其添加一些附加属性。

但只需单击链接,它包含一个示例、更多信息以及对命名空间包的解释,即没有__init__.py.

2022-01-23
一尘不染

命名文件__init__.py用于将磁盘上的目录标记为 Python 包目录。如果你有文件

mydir/spam/__init__.py
mydir/spam/module.py

并且mydir在您的路径上,您可以将代码导入module.py

import spam.module

或者

from spam import module

如果您删除该__init__.py文件,Python 将不再在该目录中查找子模块,因此尝试导入该模块将失败。

__init__.py文件通常是空的,但可用于以更方便的名称导出包的选定部分,保存方便的函数等。在上面的示例中,可以访问 init 模块的内容为

import spam
2022-01-23