描述
classmethod 修飾符對應的函數不需要實例化,不需要 self 參數,但第一個參數需要是表示自身類的 cls 參數,可以來調用類的屬性,類的方法,實例化對象等。
語法
classmethod 語法:
classmethod
參數
- 無。
返回值
返回函數的類方法。
實例
以下實例展示了 classmethod 的使用方法:
1 #! /usr/bin/python3 2 # -*- codeing:UTF-8 -*- 3 4 class A: 5 # 屬性默認爲類屬性 (可以直接被類本身調用) 6 bar = 1 7 # 實例化方法(必須實例化類之後才能被調用) 8 def func1(self): # self表示實例化類後的地址id 9 print('foo') 10 # 類方法 (不需要實例化類就可以直接被類本身調用) 11 @classmethod 12 def func2(cls): # cls表示沒被實例化的類本身 13 print('func2') 14 print(cls) 15 print(cls.bar) 16 cls().func1() # 必須要實例化之後才能調用func1() 17 # A.func1() # 會報錯 18 A.func2()
輸出結果爲
func2 <class '__main__.A'> 1 foo
在哪些場合適合用classmethod呢?