处理Python命名空间的更好方法是什么?

时间:2013-05-08 04:54:15

标签: python namespaces

这个问题可能非常简单,但这里有:

我正在编写一个需要大量课程的应用程序。我想基本将这些类捆绑到组中。为此,我基本上创建文件夹并将类.py文件放在这些文件夹中。

因此,示例文件夹结构可能是这样的:

mainApp.py
moreAppCode.py
functions
  |- mathstuff.py
  |- my_object.py
  `- network.py
gui
  |- wxMainForm.py
  |- wxSplashScreen.py
  `- wxAboutBox.py

现在,我发现在“import”语句中轻松引用这些类的唯一方法是在两个文件夹中创建__init__.py个文件,并在这些 init 文件中创建,导入每个.py文件。所以我必须做类似的事情:

(functions/__init__.py)
from mathstuff import mathstuff
from my_object import my_object
from network import network

这允许我在mainApp.py中执行类似import functions的操作。

然而,在我看来,应该有一种更简单,更简单的方法来实现这一目标。

我真的不想做import gui.wxMainForm.wxMainForm之类的事情(每个.py文件只包含一个由其文件名表示的类)。此外,这排除了import gui.*之类的任何事情(无效)。因此,无论我发现什么,我最终都必须手动导入每个.py文件,无论是在 init 文件中,还是在计划使用它们的实际.py文件中。

我可以使用from gui import wxMainForm缓解一些混乱,但我仍然需要做wxMainForm.wxMainForm()。我可以做from gui.wxMainForm import wxMainForm吗?但是,在我正在使用的任何代码文件的顶部,我们仍然会回到大量的import语句中。

所有这一切的重点是我不想依赖 init 文件来完成这项工作,因为如果我需要重命名一个类或添加一个类就意味着一次旅行进入 init 添加或更改它 - 容易忘记做的事情,并且难以调试!

我错过了什么吗?

由于

-f

0 个答案:

没有答案