好吧,一般而言,在处理多重继承时,您的基类(不幸的是)应该 设计为多重继承
。类
B和
C在你的例子都没有,这样的话你找不到适用有道
super的
D。
设计基类以进行多重继承的一种常见方法是,中级基类在其
__init__方法中接受他们不打算使用的额外的args ,并将它们传递给
super调用。
这是在python中执行此操作的一种方法:
class A(object): def __init__(self,a): self.a=aclass B(A): def __init__(self,b,**kw): self.b=b super(B,self).__init__(**kw) class C(A): def __init__(self,c,**kw): self.c=c super(C,self).__init__(**kw)class D(B,C): def __init__(self,a,b,c,d): super(D,self).__init__(a=a,b=b,c=c) self.d=d
这可以被视为令人失望,但这就是事实。



