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
----程序结束–