python單繼承中的super()

python 單繼承中的super函數

super() 函數是用於調用父類(超類)的一個方法。
super是用來解決多重繼承問題的,直接用類名調用父類方法在使用單繼承的時候沒問題,但是如果使用多繼承,會涉及到查找順序(MRO)、重複調用(鑽石繼承)等種種問題。
下面舉個實例來解釋Python單繼承中的super():

   1 class Parent:
  2     def __init__(self,name):
  3         print("Parent的init函數被調用")
  4         self.name =name
  5         print("Partent的init結束調用")
  6 
  7 class Son1(Parent):
  8     def __init__(self,name,color):
  9         print("Son1的init函數被調用")
 10         self.color = color
 11         super().__init__(name)
 12 
 13 class Grandson(Son1):
 14     def __init__(self,name,color,age):
 15         print("Grandson的init函數被調用")
 16         self.age = age
 17         super().__init__(name,color)
 18 
 19 grandson1 = Grandson('grandson','黃種人',12)
 20 print(grandson1.name)
 21 print(grandson1.color)
 22 print(grandson1.age)
 23 print("----程序結束--")
~                            
~                             

程序輸出結果:
Grandson的init函數被調用
Son1的init函數被調用
Parent的init函數被調用
Partent的init結束調用
grandson
黃種人
12
----程序結束–

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章