多态 - 在重写的同时添加现有方法

2 投票
5 回答
1118 浏览
提问于 2025-04-15 18:41

我想要能够继承一个类,并且定义自己的 __init__ 方法,但同时还想运行原来的 __init__ 方法。

为了说明这个问题,假设我有以下这些类:

class A(object):
    def __init__(self):
        self.var1 = 1

class B(A):
    def __init__(self)
        self.var2 = 2
        doInitForA()

我想要能够这样做:

instB = B()
print (instB.var1) #1
print (instB.var2) #2

根据 Ignacio Vazquez-Abrams 的建议进行了编辑。(可以在不提升热度的情况下编辑吗?)

5 个回答

3

你可能想看看这个问题:在Python中链式调用父类构造函数,特别是使用 super(b, self).__init__() 这个方法。

6

doInitForA()

替换成

super(b, self).__init__()
0

你可以选择调用 a.__init__(self),或者让 a 继承自 object,然后使用 super()

撰写回答