假设我正在编写一个应用程序,该应用程序使用了许多我正在为其编写 Python 代码的 GUI 控件。每个控件都由一个类描述,我想将所有这些类聚合到一个名为gui
. 作为一名经验丰富的 C/C++ 开发人员,对我来说,按文件分隔类实现是最有意义的,如下所示:
gui/MainWindow.py
gui/Widget1.py
gui/Widget2.py
其中,在上面,MainWindow
类的规范将在MainWindow.py
. 但是,如果我以这种方式布置文件,那么获取这些类的语法如下所示:
import gui
w = gui.MainWindow.MainWindow()
这似乎是多余的。解决此限制的一种方法是编辑gui/__init__.py
说:
from gui.MainWindow import *
from gui.Widget1 import *
from gui.Widget2 import *
它将类带入gui
模块命名空间。然后我可以按如下方式访问它们:
w = gui.MainWindow()
这通常会完成吗?它是否有足够的 Pythonicity 被认为在社区中是合适的?gui/__init__.py
我可以看到的一个缺点是,当我向模块添加新的子模块时,我需要确保保留gui
;我不喜欢这样的手动步骤。
关于如何更好地解决这个问题的想法和/或建议会很棒。