Python 2.7初始化多个继承器

Python 2.7初始化多个继承器,python,class,python-2.7,inheritance,initialization,Python,Class,Python 2.7,Inheritance,Initialization,我正在尝试运行下面的代码,我希望C以整洁和动态的方式初始化A和B(可能更多) class A(object): def __init__(self): print 'Class A init' class B(object): def __init__(self): print 'Class B init' class C(A, B): def __init__(self): super(C, self).__init_

我正在尝试运行下面的代码,我希望
C
以整洁和动态的方式初始化
A
B
(可能更多)

class A(object):
    def __init__(self):
        print 'Class A init'

class B(object):
    def __init__(self):
        print 'Class B init'

class C(A, B):
    def __init__(self):
        super(C, self).__init__()
        print 'Class C init'

c = C()
然而,这只是一种产出

 Class A init
 Class C init
我知道这是由于调用super(…)时采用了深度优先的搜索方式,并且在找到第一个方法时停止。我能以某种方式初始化所有的超类吗

class C(A, B):
    def __init__(self):
        A.__init__(self)
        B.__init__(self)
        print 'Class C init'
编辑: 如下定义
C
可以实现初始化所有超类的目标。有没有一种方法可以隐式初始化所有的超类

class C(A, B):
    def __init__(self):
        A.__init__(self)
        B.__init__(self)
        print 'Class C init'

解决方案:正如a
super(B,self)所指出的那样。
B
类中添加了
B

为什么不调用
super(B,self)。
B
中的
?想不出一个设计,你真的想让
C
同时做这两件事…重复的
B
不会继承
a
@JonClements:我同意你的观点。成功了。我不知道。这是一种非常糟糕的继承方式。为什么不为你想要的行为使用mixin呢?