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)記方法為類方法的裝飾器
說明:
1. classmethod 是一個裝飾器函數(shù),用來標(biāo)示一個方法為類方法
2. 類方法的第一個參數(shù)是類對象參數(shù),在方法被調(diào)用的時候自動將類對象傳入,參數(shù)名稱約定為cls
3. 如果一個方法被標(biāo)示為類方法,則該方法可被類對象調(diào)用(如 C.f()),也可以被類的實(shí)例對象調(diào)用(如 C().f())
>>> class C:
@classmethod
def f(cls,arg1):
print(cls)
print(arg1)
>>> C.f('類對象調(diào)用類方法')
<class '__main__.C'>
類對象調(diào)用類方法
>>> c = C()
>>> c.f('類實(shí)例對象調(diào)用類方法')
<class '__main__.C'>
類實(shí)例對象調(diào)用類方法
4. 類被繼承后,子類也可以調(diào)用父類的類方法,但是第一個參數(shù)傳入的是子類的類對象
>>> class D(C):
pass
>>> D.f("子類的類對象調(diào)用父類的類方法")
<class '__main__.D'>
子類的類對象調(diào)用父類的類方法
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python使用PySimpleGUI和Pygame編寫一個MP3播放器
這篇文章主要為大家詳細(xì)介紹了Python如何使用PySimpleGUI和Pygame編寫一個簡單的MP3播放器,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以學(xué)習(xí)一下2023-11-11
解決Python在導(dǎo)入文件時的FileNotFoundError問題
這篇文章主要介紹了解決Python在導(dǎo)入文件時的FileNotFoundError問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
基于Python組裝jmx并調(diào)用JMeter實(shí)現(xiàn)壓力測試
這篇文章主要介紹了基于Python組裝jmx并調(diào)用JMeter實(shí)現(xiàn)壓力測試,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-11-11
selenium+python 去除啟動的黑色cmd窗口方法
今天小編就為大家分享一篇selenium+python 去除啟動的黑色cmd窗口方法。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05
解決TensorFlow GPU版出現(xiàn)OOM錯誤的問題
今天小編就為大家分享一篇解決TensorFlow GPU版出現(xiàn)OOM錯誤的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02
python實(shí)現(xiàn)銀聯(lián)支付和支付寶支付接入
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)銀聯(lián)支付和支付寶支付的接入,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-05-05
python利用OpenCV2實(shí)現(xiàn)人臉檢測
這篇文章主要為大家詳細(xì)介紹了python利用OpenCV2實(shí)現(xiàn)人臉檢測,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-12-12

