Python 模块与包

Python modules vs packages

我正在阅读文档,遇到以下部分:

A ​module​ is nothing more, nothingless than a directory with ​__init__.py​ file inside. It should contain other Python files with the logic related to the module's purpose.

这个定义正确吗?

(据我所知,Python 模块是一个文件,其扩展名为 py,其中包含 Python 代码。我记得有一个目录包含 dunder init(__init__.py) 文件被称为 Python 包。)

定义不正确。

虽然“包”也是一个“模块”,但一个“.py”文件本身包含: 一个模块,不需要是一个目录,也不需要里面有一个 __init__ 文件。

另一方面,是的,一个包通常(并定义为)一个包含 __init__.py 和可选的其他文件的目录。

(但是包可以以其他格式呈现,例如 .egg 或 zip 文件,甚至是带有相应自定义导入机制的自定义格式,这些格式是可插入的)