来自单独文件的基类继承

1 投票
1 回答
1609 浏览
提问于 2025-04-18 05:23

我正在自动化一个由多个独立应用程序组成的环境。在某个时刻,我决定把每个应用程序定义为一个类,并将其保存在单独的文件中。

我目前的情况:

我有一个目录,里面有一些 *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 可以执行的所有操作,比如启动应用程序、登录、执行操作、退出等。

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

我想要实现的目标

目前一切运行良好,但还有改进的空间。许多类的方法大同小异(比如登录和退出的方法),显然可以定义在一个基础类中,然后我可以从这个基础类继承。不过,由于我把所有应用程序都定义在单独的文件中(目前看起来这是个合理的解决方案),我不知道该在哪里定义这个基础类,以及如何从它继承。我考虑了两种选择,但不确定哪种(如果有的话)是正确的做法。

  1. 在一个单独的文件中定义一个基础类,然后将其导入到每个应用程序类中。不确定这样做是否合理。
  2. 创建一个非常长的文件,里面包含所有应用程序的类,并在同一个文件中包含基础类。注意:这样的文件会非常庞大,维护起来会很困难,因为每个应用程序都有自己的方法,有些文件本身就相当大。

所以,这些是我唯一的选择吗?如果是的话,哪一个更合理呢?

1 个回答

2

这正是导入的目的所在。你可以在一个单独的模块中定义你的基础类,然后在需要的地方导入它。选项1非常合理。

需要注意的是,Python的模块命名规则是使用小写字母;这样可以更容易地区分类和模块。我建议把App1.py改名为app1.py

撰写回答