Python3多重继承\uuuu init\uuuuuu第二类

Python3多重继承\uuuu init\uuuuuu第二类,python,initialization,multiple-inheritance,Python,Initialization,Multiple Inheritance,在Python3中,我有一个类继承了另外两个类。 然而,正如我看到的,当一个对象被初始化时,只有它的第一个类被初始化,也可以看到示例 A类: 定义初始化(自): 打印(“构造器”) B类: 定义初始化(自): 打印(“B构造函数”) 丙类(甲、乙类): 定义初始化(自): 打印(“C构造函数”) super()。\uuuu init\uuuuu() c=c() 这具有以下输出: C构造函数 构造器 我的问题是,为什么它不调用B构造函数呢? 是否可以使用super从C类调用B构造函数 class

在Python3中,我有一个类继承了另外两个类。 然而,正如我看到的,当一个对象被初始化时,只有它的第一个类被初始化,也可以看到示例

A类:
定义初始化(自):
打印(“构造器”)
B类:
定义初始化(自):
打印(“B构造函数”)
丙类(甲、乙类):
定义初始化(自):
打印(“C构造函数”)
super()。\uuuu init\uuuuu()
c=c()
这具有以下输出:

C构造函数 构造器

我的问题是,为什么它不调用B构造函数呢? 是否可以使用super从C类调用B构造函数

class A:
    def __init__(self):
        print("A constructor")
        super().__init__()        # We need to explicitly call super's __init__ method. Otherwise, None will be returned and the execution will be stopped here.

class B:
    def __init__(self):
        print("B constructor")


class C(A, B):
    def __init__(self):
        print("C constructor")
        super().__init__()        # This will call class A's __init__ method. Try: print(C.mro()) to know why it will call A's __init__ method and not B's.

c = C()