英文文檔
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, ...): ...
classmethod()
1、classmethod 是一個裝飾器函數,用來標示一個方法為類方法
2、類方法的第一個參數是類對象參數,在方法被調用的時候自動將類對象傳入,參數名稱約定為cls
3、如果一個方法被標示為類方法,則該方法可被類對象調用(如 C.f()),也可以被類的實例對象調用(如 C().f())
>>> class C: ???? @classmethod ???? def f(cls, arg1): ?????????? print (cls) ?????????? print (arg1) ????? >>> C.f('類對象調用類方法')
類對象調用類方法 >>> c = C() >>> c.f('類實例對象調用類方法') 類實例對象調用類方法
4、類被繼承后,子類也可以調用父類的類方法,但是第一個參數傳入的是子類的類對象
>>> class D(C): ?????? pass >>> D.f("子類的類對象調用父類的類方法")
子類的類對象調用父類的類方法
小結
希望通過上面的操作能幫助大家。如果你有什么好的意見,建議,或者有不同的看法,希望你留言和我進行交流、討論。
歡迎關注微信公眾號,訪問更多精彩: 數據之魅 。
如需轉載,請聯系授權,謝謝合作。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
