Python 3 多重继承__init__第二类



在Python3中,我有一个继承了另外两个类的类。 但是,正如我所看到的,当一个对象被初始化时,它初始化的第一类也见示例......

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

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

class C(A, B):
def __init__(self):
print("C constructor")
super().__init__()

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()

相关内容

  • 没有找到相关文章

最新更新