首页 > 解决方案 > 如何定义一个只改变父类的新子类?

问题描述

我有以下简化的类结构

class A():
    def foo(self):
        self.bar()

    def bar(self):
        print("A bar")

class B(A):
    def bar(self):
        print("B bar")

class C(A):
    def bar(self):
        print("C bar")

现在我也有一个修改版的 A

class ModA():
    def foo(self):
        print("hi")
        self.bar()

我现在还想要一个附加版本的 B 和 CModA作为父类而不是A.

class ModB(ModA):
    def bar(self):
        print("B bar")

class ModC(ModA):
    def bar(self):
        print("C bar")

除了定义父母的第一行之外,我如何定义ModB并且不重复他们的整个定义?ModC

标签: python

解决方案


如果不知道您的“细微变化”可能是什么,就不可能回答,但总的来说,看看多重继承 -class ModB(ModA, B):可能是您需要的。

class ModB(ModA, B):
    pass
>>> b = ModB()
>>> b.foo()
hi
B bar

推荐阅读