Python:如何在模块中维护代码

7

我正在开发一个项目,遇到了以下问题:

我实现了几个子类,每个子类大约有250行代码。从语义上讲,它们应该在同一个模块中一起使用,我想通过

import

将它们导入。

from mymodule import SubclassA, SubclassB

但是我的模块文件有成千上万行的代码,使得维护变得非常困难。现在我将每个类放在一个单独的文件中,以便更轻松地进行维护,但我必须像这样使用它:

from subclassa import SubclassA
from subclassb import SubclassB

这没有任何意义,而且真的很糟糕。

是否有更优雅的解决方案?如果没有,那么上述中哪一个是更好的解决方案?


1
也许你需要一个包:http://docs.python.org/tutorial/modules.html(6.4) - dani herrera
成千上万行代码,这使得维护其代码非常困难?真的吗?为什么?你能更具体地说明你实际遇到的问题吗? - S.Lott
3个回答

5
您可以按照您在第二个列表中展示的方式,将from subclassa ...导入放置到您包的__init__.py中。这样,它们将直接在您的包上可用,就像您在第一个列表中所写的那样。

非常感谢!那个方法可行。我终于创建了一个带有导入的 __init__.py 文件的包。 - Santiago Alessandri

1

我更喜欢第二种解决方案,使用单独的文件。导入并不那么糟糕。

如果它们让你很困扰,你可以将它们封装在另一个文件中,然后从该文件中间接地导入所有类。因此,您的主要导入看起来像第一种解决方案,但 mymodule 文件的唯一内容将是第二种解决方案中的代码。


0

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

import SubclassA, SubclassB

然后在其他项目中,您可以从此模块导入这些类:

from mymodule import SubclassA, SubclassB

请告诉我这是否是您正在寻找的内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接