1

我的大部分代码都在 project.py 中,它需要第二个文件 otherfile.py。目前我只是将它们安装为两个具有相同setup.py(使用 py_modules 变量)的单独模块,但我认为是时候正确打包东西了,因为 project.py 正在增长,我可能需要进一步拆分它。

用户只需要与 project.py 中的一些类和函数进行交互,所以为了保持兼容性,我想使用以下结构:

project/
    __init__.py  # (renamed from project.py)
    otherfile.py

但是我读过__init__.py应该保持几乎是空的。另一种选择是:

project/
    __init__.py
    project.py
    otherfile.py

并导入project.py用户可以看到的所有内容,__init__.py因为我想避免为用户添加额外的命名空间:

import project.project

我不确定这真的很重要,但我想做“正确的方式”。

4

1 回答 1

2

您可以使用第二个结构,但在您的__init__.py, 只需...

from .project import PublicClass1
from .project import PublicClass2
from .project import PUBLIC_CONSTANT_A
...

基本上,只导入__init__.py您真正想要公开的内容,同时保持__init__.py大部分代码逻辑的自由。

于 2013-06-13T14:52:10.570 回答