|
楼主 |
发表于 2017-3-22 12:17:02
|
显示全部楼层
class A(object):
def __init__(self):
print ("enter A")
print ("leave A")
class B(object):
def __init__(self):
print ("enter B")
print ("leave B")
class C(A):
def __init__(self):
print ("enter C")
super(C, self).__init__()
print ("leave C")
class D(A):
def __init__(self):
print ("enter D")
super(D, self).__init__()
print ("leave D")
class E(B, C):
def __init__(self):
print ("enter E")
B.__init__(self)
C.__init__(self)
print ("leave E")
class F(E, D):
def __init__(self):
print ("enter F")
E.__init__(self)
D.__init__(self)
print ("leave F")
始终想不明白
enter F
enter E
enter B
leave B
enter C
enter D
enter A
leave A
leave D
leave C
leave E
enter D
enter A
leave A
leave D
leave F
标颜色的D 是怎么来的?
而且另外
单独调用
>>> E =E()
enter E
enter B
leave B
Traceback (most recent call last):
File "<pyshell#14>", line 1, in <module>
E =E()
File "/Users/zhujunjie/Desktop/a.py", line 27, in __init__
C.__init__(self)
TypeError: __init__() takes 1 positional argument but 2 were given
为什么会报错? |
|