對(duì)Python中的@classmethod用法詳解
在Python面向?qū)ο缶幊讨械念悩?gòu)建中,有時(shí)候會(huì)遇到@classmethod的用法。
總感覺(jué)有這種特殊性說(shuō)明的用法都是高級(jí)用法,在我這個(gè)層級(jí)的水平中一般是用不到的。
不過(guò)還是好奇去查了一下。
大致可以理解為:使用了@classmethod修飾的方法是類專屬的,而且是可以通過(guò)類名進(jìn)行調(diào)用的。為了能夠展示其與一般方法的差異,寫(xiě)一段簡(jiǎn)單的代碼如下:
class DemoClass: @classmethod def classPrint(self): print("class method") def objPrint(self): print("obj method") obj = DemoClass() obj.objPrint() obj.classPrint() DemoClass.classPrint() DemoClass.objPrint()
程序的執(zhí)行結(jié)果如下:
grey@DESKTOP-3T80NPQ:/mnt/e/01_workspace/02_programme_language/03_python/03_OOP/2017/08$python classmethod.py obj method class method class method Traceback (mostrecent call last): File "classmethod.py", line 13, in<module> DemoClass.objPrint() TypeError: unboundmethod objPrint() must be called with DemoClass instance as first argument (gotnothing instead) grey@DESKTOP-3T80NPQ:/mnt/e/01_workspace/02_programme_language/03_python/03_OOP/2017/08$exit exit E:\01_workspace\02_programme_language\03_python\03_OOP\2017\08>pythonclassmethod.py obj method class method class method Traceback (mostrecent call last): File "classmethod.py", line 13, in<module> DemoClass.objPrint() TypeError:objPrint() missing 1 required positional argument: 'self'
上面的程序執(zhí)行,我是在兩個(gè)操作系統(tǒng)中的兩個(gè)Python版本環(huán)境中進(jìn)行的。不管是Py2還是Py3,這方面的設(shè)計(jì)都是差不多的??傮w來(lái)說(shuō),這種用法還是很微妙的。由于沒(méi)有足夠的實(shí)戰(zhàn)歷練,暫時(shí)還說(shuō)不好這個(gè)東西有什么更好的優(yōu)勢(shì)。
這篇對(duì)Python中的@classmethod用法詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Python標(biāo)準(zhǔn)庫(kù)中內(nèi)置裝飾器@staticmethod和@classmethod
- Python中通過(guò)@classmethod 實(shí)現(xiàn)多態(tài)的示例
- python中的class_static的@classmethod的巧妙用法
- 詳解Python中@staticmethod和@classmethod區(qū)別及使用示例代碼
- Python 類方法和實(shí)例方法(@classmethod),靜態(tài)方法(@staticmethod)原理與用法分析
- python @classmethod 的使用場(chǎng)合詳解
- Python類方法@classmethod()的具體使用
相關(guān)文章
Python?Pygame實(shí)戰(zhàn)之歡樂(lè)打地鼠游戲
打地鼠是一款比較經(jīng)典的敏捷類游戲,我們可以在許多商場(chǎng)門(mén)口看到這類游戲機(jī),在電腦和手機(jī)上也有許多類似的游戲。本文將用Python中的Pygame庫(kù)實(shí)現(xiàn)這一游戲,需要的可以參考一下2022-02-02python 字典 setdefault()和get()方法比較詳解
這篇文章主要介紹了python 字典 setdefault()和get()方法比較詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08教你用一行Python代碼實(shí)現(xiàn)并行任務(wù)(附代碼)
這篇文章主要介紹了教你用一行Python代碼實(shí)現(xiàn)并行任務(wù)(附代碼),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-02-02Python使用plt.boxplot()函數(shù)繪制箱圖、常用方法以及含義詳解
箱線圖一般用來(lái)展現(xiàn)數(shù)據(jù)的分布,如上下四分位值、中位數(shù)等,也可以直觀地展示異常點(diǎn),下面這篇文章主要給大家介紹了關(guān)于Python使用plt.boxplot()函數(shù)繪制箱圖、常用方法以及含義詳解的相關(guān)資料,需要的朋友可以參考下2022-08-08Python對(duì)ElasticSearch獲取數(shù)據(jù)及操作
這篇文章主要為大家詳細(xì)介紹了Python對(duì)ElasticSearch獲取數(shù)據(jù)及操作,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-04-04pycharm快捷鍵自動(dòng)提示documentation問(wèn)題(auto?Ctrl+Q)
這篇文章主要介紹了pycharm快捷鍵自動(dòng)提示documentation問(wèn)題(auto?Ctrl+Q),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04使用Pandas計(jì)算系統(tǒng)客戶名稱的相似度
在日常業(yè)務(wù)處理中,我們經(jīng)常會(huì)面臨將不同系統(tǒng)中的數(shù)據(jù)進(jìn)行匹配和比對(duì)的情況,本文將介紹如何使用Python的Pandas庫(kù)來(lái)處理這個(gè)問(wèn)題,需要的可以參考一下2023-07-07