【发布时间】:2021-07-03 16:38:50
【问题描述】:
我正在阅读一个文档,我遇到了下面的部分:
模块无非就是一个目录,里面有__init__.py文件。它应该包含具有与模块用途相关的逻辑的其他 Python 文件。
这个定义正确吗?
(据我所知,Python 模块是一个文件,其扩展名为 py,其中包含 Python 代码。我记得一个包含 dunder init(__init__.py) 文件的目录称为 Python 包。)
【问题讨论】:
-
一个包也是一个模块,我可以通过名字来导入它。我认为这个定义有点草率,因为它不允许单文件模块。
-
Python docs 可能会有所帮助
-
两个定义都不好。模块不需要是 .py 文件(例如可以是 .so),包不需要是磁盘上的目录(例如可以是 zip 文件)。模块和包可以在内存中动态创建,并且可能根本不存在于文件系统中。命名空间包是一种没有任何
__init__.py的Python包。
标签: python python-module python-packaging