BaseClass继承自单独的文件

时间:2014-05-05 08:17:30

标签: python class inheritance module code-organization

我正在自动化由多个独立应用程序组成的环境。在某些时候,我已经决定将每个应用程序定义为类并将其另存为单独的文件是最有意义的。

我现在拥有的内容:

包含*py个文件的目录,其中每个文件为单个应用程序定义单个类。因此,例如,我有应用程序App1。它保存在App1.py文件中,看起来像这样:

class App1:
    def __init__(self):
        self.link = config.App1_link
        self.retry = config.App1_retry
    def access(self):
        pass
    def logOut(self):
        pass

因此每个类都定义了App1可以执行的所有操作,例如start \ login to the application,perform operation,log out from the application等。

然后,在一个单独的文件中,我创建应用程序对象并逐个调用对象的方法来创建一个多步骤方案。

我想要实现的目标

这一切都很好,但有一个改进的地方。许多类方法或多或少相似(例如从应用程序中登录到\ _的方法),显然可以在某种基类中定义,然后我可以从中继承。但是,由于我将所有应用程序定义在单独的文件中(这似乎是目前的逻辑解决方案),因此我不知道在何处定义此类基类以及如何从中继承。我有两个选择,但我不确定哪一个(如果有的话)将是正确的方法。

  1. 在单独的文件中定义基类,然后将其导入每个应用程序类。不确定这是否有意义。
  2. 使用所有应用程序类创建一个非常长的文件,并在同一文件中包含基类。 注意:这样的文件非常庞大且难以维护,因为每个应用程序都有自己的方法,其中一些文档本身就是一个相当大的文件。
  3. 这些是我唯一的选择,如果它们是哪一个,哪一个更有意义呢?

1 个答案:

答案 0 :(得分:2)

这正是导入 for 的原因。在单独的模块中定义基类,并将其导入到您需要的任何位置。选项1非常有意义。

请注意,Python的module naming convention是使用小写名称;这样你就可以更容易地区分类和模块。我将App1.py重命名为app1.py