Python classmethod裝飾器原理及用法解析
英文文檔:
classmethod(function)
Return a class method for function.
A class method receives the class as implicit first argument, just like an instance method receives the instance. To declare a class method, use this idiom:
class C:
@classmethod
def f(cls, arg1, arg2, ...): ...
The @classmethod form is a function decorator – see the description of function definitions in Function definitions for details.
It can be called either on the class (such as C.f()) or on an instance (such as C().f()). The instance is ignored except for its class. If a class method is called for a derived class, the derived class object is passed as the implied first argument.
Class methods are different than C++ or Java static methods. If you want those, see staticmethod() in this section.
標(biāo)記方法為類方法的裝飾器
說(shuō)明:
1. classmethod 是一個(gè)裝飾器函數(shù),用來(lái)標(biāo)示一個(gè)方法為類方法
2. 類方法的第一個(gè)參數(shù)是類對(duì)象參數(shù),在方法被調(diào)用的時(shí)候自動(dòng)將類對(duì)象傳入,參數(shù)名稱約定為cls
3. 如果一個(gè)方法被標(biāo)示為類方法,則該方法可被類對(duì)象調(diào)用(如 C.f()),也可以被類的實(shí)例對(duì)象調(diào)用(如 C().f())
>>> class C: @classmethod def f(cls,arg1): print(cls) print(arg1) >>> C.f('類對(duì)象調(diào)用類方法') <class '__main__.C'> 類對(duì)象調(diào)用類方法 >>> c = C() >>> c.f('類實(shí)例對(duì)象調(diào)用類方法') <class '__main__.C'> 類實(shí)例對(duì)象調(diào)用類方法
4. 類被繼承后,子類也可以調(diào)用父類的類方法,但是第一個(gè)參數(shù)傳入的是子類的類對(duì)象
>>> class D(C): pass >>> D.f("子類的類對(duì)象調(diào)用父類的類方法") <class '__main__.D'> 子類的類對(duì)象調(diào)用父類的類方法
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Python中通過(guò)@classmethod 實(shí)現(xiàn)多態(tài)的示例
- 詳解python中@classmethod和@staticmethod方法
- python中的classmethod與staticmethod
- python中的class_static的@classmethod的巧妙用法
- 詳解Python中@staticmethod和@classmethod區(qū)別及使用示例代碼
- Python 類方法和實(shí)例方法(@classmethod),靜態(tài)方法(@staticmethod)原理與用法分析
- python裝飾器類方法classmethod的使用場(chǎng)景
相關(guān)文章
Python使用PySimpleGUI和Pygame編寫一個(gè)MP3播放器
這篇文章主要為大家詳細(xì)介紹了Python如何使用PySimpleGUI和Pygame編寫一個(gè)簡(jiǎn)單的MP3播放器,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以學(xué)習(xí)一下2023-11-11解決Python在導(dǎo)入文件時(shí)的FileNotFoundError問(wèn)題
這篇文章主要介紹了解決Python在導(dǎo)入文件時(shí)的FileNotFoundError問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04基于Python組裝jmx并調(diào)用JMeter實(shí)現(xiàn)壓力測(cè)試
這篇文章主要介紹了基于Python組裝jmx并調(diào)用JMeter實(shí)現(xiàn)壓力測(cè)試,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11Python第三方庫(kù)之OpenCV庫(kù)的實(shí)用指南
OpenCV(Open Source Computer Vision Library)作為一個(gè)強(qiáng)大的計(jì)算機(jī)視覺(jué)庫(kù),提供了豐富的圖像處理和計(jì)算機(jī)視覺(jué)功能,本文將帶領(lǐng)讀者使用Python編程語(yǔ)言,通過(guò)簡(jiǎn)單的代碼示例,初步掌握OpenCV的圖像處理技術(shù),需要的朋友可以參考下2024-09-09selenium+python 去除啟動(dòng)的黑色cmd窗口方法
今天小編就為大家分享一篇selenium+python 去除啟動(dòng)的黑色cmd窗口方法。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05解決TensorFlow GPU版出現(xiàn)OOM錯(cuò)誤的問(wèn)題
今天小編就為大家分享一篇解決TensorFlow GPU版出現(xiàn)OOM錯(cuò)誤的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02盤點(diǎn)Python?爬蟲(chóng)中的常見(jiàn)加密算法
這篇文章主要介紹了盤點(diǎn)Python?爬蟲(chóng)中的常見(jiàn)加密算法,加密即Encryption指將明文數(shù)據(jù)變換為密文的過(guò)程,解密即Decryption指加密的逆過(guò)程,即由密文恢復(fù)出原明文的過(guò)程2022-07-07pandas 對(duì)group進(jìn)行聚合的例子
今天小編就為大家分享一篇pandas 對(duì)group進(jìn)行聚合的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12python實(shí)現(xiàn)銀聯(lián)支付和支付寶支付接入
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)銀聯(lián)支付和支付寶支付的接入,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05python利用OpenCV2實(shí)現(xiàn)人臉檢測(cè)
這篇文章主要為大家詳細(xì)介紹了python利用OpenCV2實(shí)現(xiàn)人臉檢測(cè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12