我正在创建一个python包,为了代码组织,我想将我的代码拆分成不同的文件(目前,大部分都直接在包的顶级__init__.py
中定义文件)。然而,这实际上只是为了更容易维护代码:从用户的角度来看,真正更有意义的是它都处于顶层,即扁平封装。这样做的最佳方式是什么?
例如,如果我有两个文件,foo.py:
""" foo.py """
X = 1
Y = 2
Z = 3
并且bar.py:
""" bar.py """
A = 10
B = 11
C = 12
我将它们全部放在名为“baz”的软件包中,我希望用户能够做到:
import baz
baz.X
baz.A
# ...
甚至使用from baz import *
。
我目前正在通过将所有内容导入顶级__init__.py
文件来实现此目的:
""" ___init__.py """
from foo import *
from bar import *
这有效,但这是最好的方法吗?首先,现在可以访问相同的符号(例如)baz.X
和baz.foo.X
。我也关注我的Sphinx autodoc:符号将以“完全限定”的名称(例如baz.foo.X
)记录,但我真的希望用户将它们视为在顶层