1. 程式人生 > 實用技巧 >python super函式

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被呼叫