【发布时间】:2016-04-25 09:15:00
【问题描述】:
考虑以下python代码的sn-p
class A(object):
def __init__(self, a):
self.a = a
class B(A):
def __init__(self, a, b):
super(B, self).__init__(a)
self.b = b
class C(A):
def __init__(self, a, c):
super(C, self).__init__(a)
self.c = c
class D(B, C):
def __init__(self, a, b, c, d):
#super(D,self).__init__(a, b, c) ???
self.d = d
我想知道如何将a、b 和c 传递给相应的基类的构造函数。
【问题讨论】:
-
您可以为
B和C调用两次__init__。 -
另请阅读diamond problem
-
我认为这不是另一个著名问题的重复,因为这个问题专门处理 如何在钻石的情况下使超级调用工作继承,而另一个是关于super如何工作的问题。
标签: python multiple-inheritance super diamond-problem