【发布时间】:2018-10-07 06:00:22
【问题描述】:
为什么正是是
A.__init__()
B.__init__()
D.__init__()
由以下代码打印?特别是:
为什么
C.__init__()没有打印出来?如果我输入
super().__init__()而不是A.__init__(self),为什么会打印C.__init__()?
#!/usr/bin/env python3
class A(object):
def __init__(self):
super(A, self).__init__()
print("A.__init__()")
class B(A):
def __init__(self):
A.__init__(self)
print("B.__init__()")
class C(A):
def __init__(self):
A.__init__(self)
print("C.__init__()")
class D(B, C):
def __init__(self):
super(D, self).__init__()
print("D.__init__()")
D()
【问题讨论】:
标签: python python-3.x multiple-inheritance super diamond-problem