python中super()的使用方法

来源: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()
  1. 掌握super方法在两种不同的Python版本中的不同的写法。
  2. 掌握super方法可以调用类和超类中的所有的同名方法。
  3. 掌握super方法调用类中同名函数时的方法调用顺序,默认是优先调用父类中的同名方法。

版权声明:本文为ChuanshengWang原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。