python super函式
阿新 • • 發佈:2020-12-31
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被呼叫