python-super函式

天子骄龙發表於2024-09-16

單繼承

在單繼承中super主要是用來呼叫父類的方法的

class A:
    def __init__(self):
        self.n = 2

    def add(self, m):
        print('self is {0} @A.add'.format(self))
        self.n += m


class B(A):
    def __init__(self):
        self.n = 3

    def add(self, m):
        print('self is {0} @B.add'.format(self))
        super().add(m)  #呼叫父類方法
        self.n += 3

b = B()
b.add(2)
print(b.n)

super().add(m) 呼叫父類方法 def add(self, m) 時, 此時父類中 self 並不是父類的例項而是子類的例項, 所以 b.add(2) 之後的結果是 5 而不是 4

相關文章