首页 > 解决方案 > Python 模块与包

问题描述

我正在阅读一份文件,我遇到了以下部分:

一个​模块​无非就是一个包含​__init__.py​文件的目录。它应该包含其他 Python 文件,其中包含与模块用途相关的逻辑。

这个定义正确吗?

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

标签: pythonpython-modulepython-packaging

解决方案


定义不正确。

虽然“包”也是一个“模块”,但单个“.py”文件本身就包含一个模块,不需要是目录,也不需要在其中包含__init__文件。

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

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


推荐阅读