1. 程式人生 > >python繼承關係之super函式

python繼承關係之super函式

super_example.py

class A:
	def __init__(self):
		print("Enter A")
		print("Leave A")

class B(A):
	def __init__(self):
		print("Enter B")
		super(B,self).__init__()
		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,D):
	def __init__(self):
		print("Enter E")
		super(E,self).__init__()
		print("Leave E")
test.py:
from super_example import *
info = E()
然後終端輸入 python3 test.py即可

結果:

Enter E
Enter B
Enter C
Enter D
Enter A
Leave A
Leave D
Leave C
Leave B
Leave E

總結:

super的特點類似於BFS,繼承的上一層遍歷完後,再向上一層繼承關係遍歷,全部遍歷完後,遞迴返回

,所以出現了上述輸出結果,可以看到前後是對稱的,與遞迴呼叫的特點極其類似.