|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- class A():
- def __init__(self):
- print("进入A…")
- print("离开A…")
- class B(A):
- def __init__(self):
- print("进入B…")
- super().__init__()
- print("离开B…")
-
- class C(A):
- def __init__(self):
- print("进入C…")
- super().__init__()
- print("离开C…")
- class D(B, C):
- def __init__(self):
- print("进入D…")
- super().__init__()
- print("离开D…")
- >>> d = D()
- 进入D…
- 进入B…
- 进入C…
- 进入A…
- 离开A…
- 离开C…
- 离开B…
- 离开D…
复制代码
想问下,super函数运行之后的结果为什么是 DBCA 这样的顺序?
首先,D是继承于B,C的,对吧?而B,C又是继承于A的。
这里D有两个父类,super函数调用的是写在前面的父类,所以
会打印出进入B,由于B,C都是继承于A的,所以也要把C的__init__
调用一遍,就打印出了进入C
可以自己试一试,把C的(A)去掉,看会不会打印
|
|