super() 是pyhton 中調用父類(超類)的一種方法,在子類中可以通過super()方法來調用父類的方法:
超類: 是指 2層以上的繼承關系,假如 C類繼承B類,B類由繼承A類,那么A類就是C類的超類~
1 通過super() 來調用父類的__init__ 構造方法:
class Person(): def __init__(self): print('我是Peson的__init__構造方法') class Student(Person): def __init__(self): super().__init__() print('我是Student的__init__構造方法') stu = Student() ----------------------------------------- 我是Peson的__init__構造方法 我是Student的__init__構造方法
2 通過supper() 來調用與子類同名的父類方法
class Person(): def say(self): print('我是Peson的say方法') class Student(Person): def say(self): super().say() print('我是Student的的say方法') stu = Student() stu.say() ----------------------------------------- '我是Peson的say方法' '我是Student的的say方法'
3 通過super()調用超類的同名方法
class Person(): def say(self): print('我是Peson的say方法') class Student(Person): def __init__(self): print('我是Student的__init__構造方法') class Xiaoming(Student): def say(self): super().say() print('我是Xiaoming的say方法') Xiao= Xiaoming() Xiao.say() ------------------------------------ '我是Student的__init__構造方法' '我是Peson的say方法' 我是Xiaoming的say方法 注意:因為Xiaoming 沒有__init__ 構造方法,實例化的時候會執行父類Student的__init__構造方法,所以先打印我是Student的__init__構造方法.super().say()因為Xiaoming 的父類Student 沒有say()方法,就執行了其超類Person的say()方法,如果Student 有say方法則執行Student的say 方法 比如: class Person(): def say(self): print('我是Peson的say方法') class Student(Person): def __init__(self): print('我是Student的__init__構造方法') def say(self): print('我是Student的say方法') class Xiaoming(Student): def say(self): super().say() print('我是Xiaoming的say方法') Xiao= Xiaoming() Xiao.say() -------------------------- '我是Student的__init__構造方法' '我是Student的say方法' 我是Xiaoming的say方法
