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