根据打包 Python 项目的文档,__init__.py应该为空。我想知道为什么?因为我将某些对象放置在文件中__init__.py,这些对象在 Package 中的每个模块中使用。在我的本地环境中检查一堆__init.py__文件中是否存在诸如 importlib、multiprocessing 等标准包。所有这些文件中都有一堆代码。
的唯一目的__init__.py是表明包含此文件的文件夹是一个包,并将此文件夹视为包,这就是为什么建议将其留空。
考虑以下层次结构:
foo
__init__.py
bar.py
Run Code Online (Sandbox Code Playgroud)
当你使用from foo import bar或 时,Python解释器将在文件夹中import foo.bar查找,如果找到,则模块将被导入,否则不会;然而,随着时间的推移,这种行为已经发生了变化,即使缺少模块/包,它也可能能够成功导入,但请记住 Python 之禅:显式优于隐式,因此拥有它总是安全的。__init__.pyfoobar__init__.py
但以防万一,如果您需要定义一些包级变量,您可以在__init__.py文件内进行,并且包内的所有模块都可以使用它。
事实上,如果您查看PEP 257,它提到__init__.py还可以包含包级别信息的文档。
| 归档时间: |
|
| 查看次数: |
3487 次 |
| 最近记录: |