__init__.py的目的是什么?

2022-09-05 00:43:00

在Python源目录中__init__.py做什么?


答案 1

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

下面是文档。

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

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


答案 2

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

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

并且位于您的路径上,您可以将代码导入为mydirmodule.py

import spam.module

from spam import module

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

该文件通常是空的,但可用于以更方便的名称导出包的选定部分,保留便利功能等。给定上面的示例,init 模块的内容可以作为__init__.py

import spam

基于


推荐