2011-10-20 139 views
7

我正在构建一个项目,并遇到以下问题:Python:维护模块中的代码

我已经实现了几个子类,每个子类都有大约250行代码。语义上讲,它们应该一起去同一个模块和我想与

from mymodule import SubclassA, SubclassB 

但后来我的模块文件有上千行,这使得维护其代码非常讨厌的导入。现在我有一个单独的文件中的每个类,使其易于维护,但我必须这样使用它:

from subclassa import SubclassA 
from subclassb import SubclassB 

这样做没有任何意义,这真的很可怕。

是否有任何优雅的解决方案?如果不是,上述哪一种更好的解决方案?

+1

也许你需要一个包:http://docs.python.org/tutorial/modules.html(6.4) – danihp

+0

“千行,这使得mantaining其代码非常讨厌”?真?为什么?你能更具体地说明你的实际问题是什么吗? –

回答

5

您可以始终把from subclassa ...进口到你的包的__init__.py正如你在第二个清单显示。然后,他们将直接从您的包裹中获得,就像您在第一份清单中所写的那样。

+0

非常感谢!这工作。我终于在'__init __。py'文件中创建了一个包含import的包。 –

1

我倾向于第二种方案,用单独的文件。进口并不是那么糟糕。

如果他们打扰你这么多,你可以封装他们另一个文件中,然后从该文件中导入所有的类二手。因此,您的主要导入看起来像第一个解决方案,但mymodule文件的唯一内容将是第二个解决方案中的代码。

0

你可以从他们各自的文件中导入mymodule模块中的两个类:

import SubclassA, SubclassB 

,然后其他项目中,你可以简单地从该模块导入这些类:

from mymodule import SubclassA, SubclassB 

让我知道如果这是你正在寻找的。