python super函数
1、super函数
用于在有类继承关系且有方法覆盖的子类中,调用父类中被覆盖的方法。
super(cls, obj)
cls,子类名。obj,子类的实例
返回绑定超类的实例
super()
返回绑定超类的实例,等同于: super(__class__, 实例方法的第一个参数), 必须在方法内调用
【作用】: 借助super() 返回的基类的实例间接调用其父类的覆盖方法
In [165]: # 此示例示意用super函数返回的对象调用父类的覆盖方法
...: class A:
...: def works(self):
...: print("A.works被调用")
...:
...: class B(A):
...: ''' B类继承自A类'''
...: def works(self):
...: print("B.works被调用")
...:
...: def super_work(self):
...: self.works() # B.works被调用
...: super(B, self).works() # A.works被调用
...: super().works() # A.works被调用
...:
...:
...: b = B()
...: b.works() # B.works被调用
...: super(B, b).works() # A.works被调用
...: b.super_work() # ...
...: # super().works() # 出错,只能在方法内调用
...: A.works(b)
...:
B.works被调用
A.works被调用
B.works被调用
A.works被调用
A.works被调用
A.works被调用