對Python中的@classmethod用法詳解
在Python面向?qū)ο缶幊讨械念悩?gòu)建中,有時候會遇到@classmethod的用法。
總感覺有這種特殊性說明的用法都是高級用法,在我這個層級的水平中一般是用不到的。
不過還是好奇去查了一下。
大致可以理解為:使用了@classmethod修飾的方法是類專屬的,而且是可以通過類名進行調(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í)行,我是在兩個操作系統(tǒng)中的兩個Python版本環(huán)境中進行的。不管是Py2還是Py3,這方面的設(shè)計都是差不多的。總體來說,這種用法還是很微妙的。由于沒有足夠的實戰(zhàn)歷練,暫時還說不好這個東西有什么更好的優(yōu)勢。
這篇對Python中的@classmethod用法詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
- Python標(biāo)準(zhǔn)庫中內(nèi)置裝飾器@staticmethod和@classmethod
- Python中通過@classmethod 實現(xiàn)多態(tài)的示例
- python中的class_static的@classmethod的巧妙用法
- 詳解Python中@staticmethod和@classmethod區(qū)別及使用示例代碼
- Python 類方法和實例方法(@classmethod),靜態(tài)方法(@staticmethod)原理與用法分析
- python @classmethod 的使用場合詳解
- Python類方法@classmethod()的具體使用
相關(guān)文章
動感網(wǎng)頁相冊 python編寫簡單文件夾內(nèi)圖片瀏覽工具
這篇文章主要為大家詳細介紹了動感網(wǎng)頁相冊的制作方法,即利用python編寫簡單文件夾內(nèi)圖片瀏覽工具,感興趣的小伙伴們可以參考一下2016-08-08
python解析Chrome瀏覽器歷史瀏覽記錄和收藏夾數(shù)據(jù)
大家好,本篇文章主要講的是python解析Chrome瀏覽器歷史瀏覽記錄和收藏夾數(shù)據(jù),感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下2022-02-02
python實現(xiàn)emoji對齊特殊字符對齊高級文本對齊
這篇文章主要為大家介紹了python實現(xiàn)emoji對齊特殊字符對齊高級文本對齊方法實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-11-11
python實現(xiàn)敲木魚加功德包含加音效和敲擊動作(附demo)
敲木魚加功德是一款很火的動畫,本文主要介紹了python實現(xiàn)敲木魚加功德包含加音效和敲擊動作,具有一定的參考價值,感興趣的可以了解一下2023-11-11
[項目布局配置]Nosql與PythonWeb-Flask框架組合
本文主要描述了怎樣使用輕量級NoSQL數(shù)據(jù)庫與PythonWeb-Flask框架組合來進行項目布局及應(yīng)用配置,需要的同學(xué)可以參考下,希望可以對大家有所進益2021-08-08

