__init__.py 是干什么用的?

2022-01-13 00:00:00 python module package python-packaging

问题描述

Python 源目录中的 __init__.py 是什么?

What is __init__.py for in a Python source directory?


解决方案

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

It used to be a required part of a package (old, pre-3.3 "regular package", not newer 3.3+ "namespace package").

这是文档.

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

Python defines two types of packages, regular packages and namespace packages. Regular packages are traditional packages as they existed in Python 3.2 and earlier. A regular package is typically implemented as a directory containing an __init__.py file. When a regular package is imported, this __init__.py file is implicitly executed, and the objects it defines are bound to names in the package’s namespace. The __init__.py file can contain the same Python code that any other module can contain, and Python will add some additional attributes to the module when it is imported.

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

But just click the link, it contains an example, more information, and an explanation of namespace packages, the kind of packages without __init__.py.

相关文章