python classmethod修飾符

描述

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呢?

https://www.zhihu.com/question/20021164

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章