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被调用

 

posted @ 2020-12-31 13:42  昱成  阅读(270)  评论(0编辑  收藏  举报