天天看點

類方法:綁定或無綁定

Python的方法是一種對象,可以由執行個體或類來進行讀取。

1、無綁定類方法對象:無self

通過對類進行點号運算進而擷取類的函數屬性,會傳回無綁定方法對象。調用該方法時,必須明确提供執行個體對象作為第一參數。子類方法調用基類方法就是這種形式。

2、綁定執行個體方法對象:self+函數對

通過對執行個體進行全運算進而擷取類的函數屬性,會傳回綁定方法對象。Python在綁定方法對象中自動把執行個體和函數打包。

類方法:會作用于整個類,對類做出的任何改變會對它的所有執行個體對象産生影響。第一個參數為cls.

class A:
    count  = 0
    def __init__(self):
        A.count += 1
    def exclaim(self):
        print("I'm an A")
    @classmethod
    def kids(cls):
        print("A has", cls.count, "little objects.")

>>> easy = A()
>>> breezy = A()
>>> wheezy = A()
>>> A.kids()
A has 3 little objects.