Python3多重继承\uuuu init\uuuuuu第二类
在Python3中,我有一个类继承了另外两个类。 然而,正如我看到的,当一个对象被初始化时,只有它的第一个类被初始化,也可以看到示例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
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()