用多重继承调用父类__init__,正确的方法是什么?
假设我有多个继承方案: class A(object): # code for A here class B(object): # code for B here class C(A, B): def __init__(self): # What's the right code to write here to ensure # A.__init__ and B.__init__ get called? 有编写的两个典型方法C的__init__: (老式) ParentClass.__init__(self) (较新的样式) super(DerivedClass, self).__init__() 但是,在任何一种情况下,如果父类(A和B)没有遵循相同的约定,则代码将无法正常工作(某些代码可能会丢失或多次调用)。 那么又是什么正确的方法呢?说“保持一致,遵循一个或另一个”很容易,但是如果A或B来自第三方图书馆,那又如何呢?有没有一种方法可以确保所有父类构造函数都被调用(以正确的顺序,并且只能调用一次)? 编辑:看看我的意思,如果我这样做: class A(object): def __init__(self): print("Entering …