来源:https://www.bilibili.com/video/BV1Zt411N7wM?from=search&seid=1124646343492113244&spm_id_from=333.337.0.0
super函数:
由于类的继承导致可能覆盖同名的构造方法,导致只能使用子类的构造,而无法调用父类的构造方法。但其实可以采用super方法解决这个问题。
super这个方法用来解决子类中调用父类同名构造方法。
在Python3中,直接写super()来调用父类中的构造方法:
通过实际测试,我们知道,super方法可以用在类中的任意函数中,去调用父类中的方法。
super方法也可以调用超类中的方法。
超类:student类是person的子类,RunStudent是student的子类,那么我们称person类是RunStudent类的超类
class Person:
def __init__(self):
print("出生时会啼哭面向世界!")
def say(self):
print("我是Person")
def walk(self):
print("初始化走步")
class Student(Person):
def __init__(self,name):
super().__init__()
print(super())
self.name = name
def getName(self):
return self.name
def say(self):
super().say()
print("我是中国学生")
class RunStudent(Student):
def walk(self):
super().walk()
print("开始跑步")
stu=Student('我是老刘')
print(stu.getName())
stu.say()
#调用父类的父类中的方法
runStu = RunStudent('刘金玉编程')
runStu.walk()
- 掌握super方法在两种不同的Python版本中的不同的写法。
- 掌握super方法可以调用类和超类中的所有的同名方法。
- 掌握super方法调用类中同名函数时的方法调用顺序,默认是优先调用父类中的同名方法。