關(guān)于Python 實(shí)例方法、@staticmethod和@classmethod

一般來(lái)說(shuō),要使用某個(gè)類的方法,需要先實(shí)例化一個(gè)對(duì)象再調(diào)用方法。

而使用@staticmethod或@classmethod,就可以不需要實(shí)例化,直接類名.方法名()來(lái)調(diào)用。

這有利于組織代碼,把某些應(yīng)該屬于某個(gè)類的函數(shù)給放到那個(gè)類里去,同時(shí)有利于命名空間的整潔。

既然@staticmethod和@classmethod都可以直接類名.方法名()來(lái)調(diào)用,那他們有什么區(qū)別呢

從它們的使用上來(lái)看,

@staticmethod不需要表示自身對(duì)象的self和自身類的cls參數(shù),就跟使用函數(shù)一樣。類似于全局函數(shù)。

@classmethod也不需要self參數(shù),但第一個(gè)參數(shù)需要是表示自身類的cls參數(shù)。

如果在@staticmethod中要調(diào)用到這個(gè)類的一些屬性方法,只能直接類名.屬性名或類名.方法名(硬編碼)

而@classmethod因?yàn)槌钟衏ls參數(shù),可以來(lái)調(diào)用類的屬性,類的方法,實(shí)例化對(duì)象等,避免硬編碼(套用類名)。


下面上代碼。


輸出

static_foo

1

class_foo

1

foo

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)至元數(shù)據(jù)結(jié)尾創(chuàng)建: 董瀟偉,最新修改于: 十二月 23, 2016 轉(zhuǎn)至元數(shù)據(jù)起始第一章:isa和Class一....
    40c0490e5268閱讀 2,078評(píng)論 0 9
  • 你在的城市下雨了,好想問(wèn)你有沒(méi)帶傘,可是話到嘴邊又咽下。不知從何時(shí)開(kāi)始關(guān)注你所在城市的天氣,或許是在我以為你所在的...
    大喵彌彌閱讀 213評(píng)論 0 0
  • 2017年9月28日,今天陽(yáng)光明媚,我非常有幸受到林玲老師的邀請(qǐng),跟隨紅傘公益團(tuán)隊(duì)的老師們一起,走進(jìn)共興小...
    MissNiu_73b7閱讀 230評(píng)論 0 0
  • 還是覺(jué)得自己真好看啊,哈哈哈哈哈哈,越來(lái)越不要臉了是!公司閑一天,真是萬(wàn)般無(wú)聊啊,本來(lái)想著今天能發(fā)工資,然后抽煙喝...
    Fruitgreen院長(zhǎng)閱讀 555評(píng)論 0 0
  • 對(duì)于不能早起的人來(lái)說(shuō),去菜場(chǎng)買(mǎi)新鮮菜是個(gè)夢(mèng)想,喊著早起去菜市買(mǎi)菜的口號(hào),千百遍,連我自己也不信了,那些失...
    自然旅行隨筆閱讀 1,034評(píng)論 2 2

友情鏈接更多精彩內(nèi)容