python - Python 模块与包
问题描述
我正在阅读一份文件,我遇到了以下部分:
一个模块无非就是一个包含__init__.py文件的目录。它应该包含其他 Python 文件,其中包含与模块用途相关的逻辑。
这个定义正确吗?
(据我所知,Python 模块是一个文件,其扩展名为 py,其中包含 Python 代码。我记得包含 dunder init( __init__.py
) 文件的目录称为 Python 包。)
解决方案
定义不正确。
虽然“包”也是一个“模块”,但单个“.py”文件本身就包含一个模块,不需要是目录,也不需要在其中包含__init__
文件。
另一方面,是的,包通常是(并定义为)一个目录,其中包含一个__init__.py
和可选的其他文件。
(但是,包可以以其他格式呈现,例如 .egg 或 zip 文件,甚至是具有相应自定义导入机制的自定义格式,它们是可插入的)