對(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ì)都是差不多的。總體來(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多進(jìn)程日志以及分布式日志的實(shí)現(xiàn)方式
這篇文章主要介紹了python多進(jìn)程日志以及分布式日志的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
動(dòng)感網(wǎng)頁(yè)相冊(cè) python編寫(xiě)簡(jiǎn)單文件夾內(nèi)圖片瀏覽工具
這篇文章主要為大家詳細(xì)介紹了動(dòng)感網(wǎng)頁(yè)相冊(cè)的制作方法,即利用python編寫(xiě)簡(jiǎn)單文件夾內(nèi)圖片瀏覽工具,感興趣的小伙伴們可以參考一下2016-08-08
python解析Chrome瀏覽器歷史瀏覽記錄和收藏夾數(shù)據(jù)
大家好,本篇文章主要講的是python解析Chrome瀏覽器歷史瀏覽記錄和收藏夾數(shù)據(jù),感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下2022-02-02
python實(shí)現(xiàn)emoji對(duì)齊特殊字符對(duì)齊高級(jí)文本對(duì)齊
這篇文章主要為大家介紹了python實(shí)現(xiàn)emoji對(duì)齊特殊字符對(duì)齊高級(jí)文本對(duì)齊方法實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
python實(shí)現(xiàn)敲木魚(yú)加功德包含加音效和敲擊動(dòng)作(附demo)
敲木魚(yú)加功德是一款很火的動(dòng)畫(huà),本文主要介紹了python實(shí)現(xiàn)敲木魚(yú)加功德包含加音效和敲擊動(dòng)作,具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11
[項(xiàng)目布局配置]Nosql與PythonWeb-Flask框架組合
本文主要描述了怎樣使用輕量級(jí)NoSQL數(shù)據(jù)庫(kù)與PythonWeb-Flask框架組合來(lái)進(jìn)行項(xiàng)目布局及應(yīng)用配置,需要的同學(xué)可以參考下,希望可以對(duì)大家有所進(jìn)益2021-08-08

