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.
標記方法為類方法的裝飾器
說明:
1. classmethod 是一個裝飾器函數(shù),用來標示一個方法為類方法
2. 類方法的第一個參數(shù)是類對象參數(shù),在方法被調(diào)用的時候自動將類對象傳入,參數(shù)名稱約定為cls
3. 如果一個方法被標示為類方法,則該方法可被類對象調(diào)用(如 C.f()),也可以被類的實例對象調(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('類實例對象調(diào)用類方法')
<class '__main__.C'>
類實例對象調(diào)用類方法
4. 類被繼承后,子類也可以調(diào)用父類的類方法,但是第一個參數(shù)傳入的是子類的類對象
>>> class D(C):
pass
>>> D.f("子類的類對象調(diào)用父類的類方法")
<class '__main__.D'>
子類的類對象調(diào)用父類的類方法
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python實現(xiàn)操縱控制windows注冊表的方法分析
這篇文章主要介紹了Python實現(xiàn)操縱控制windows注冊表的方法,結(jié)合實例形式分析了Python使用_winreg模塊以及win32api模塊針對Windows注冊表操作相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2019-05-05
Python函數(shù)中的函數(shù)(閉包)用法實例
這篇文章主要介紹了Python函數(shù)中的函數(shù)(閉包)用法,結(jié)合實例形式分析了Python閉包的定義與使用技巧,需要的朋友可以參考下2016-03-03
完美解決python中ndarray 默認用科學計數(shù)法顯示的問題
今天小編就為大家分享一篇完美解決python中ndarray 默認用科學計數(shù)法顯示的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07
python實現(xiàn)簡單的學生成績管理系統(tǒng)
這篇文章主要為大家詳細介紹了python實現(xiàn)簡單的學生成績管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02
Python使用Matplotlib繪制散點趨勢線的代碼詳解
Matplotlib是一個用于數(shù)據(jù)可視化的強大Python庫,其基本功能之一是創(chuàng)建帶有趨勢線的散點圖,散點圖對于可視化變量之間的關(guān)系非常有用,本文將指導您使用Matplotlib繪制散點趨勢線的過程,涵蓋線性和多項式趨勢線,需要的朋友可以參考下2025-01-01

