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.