亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

請問代碼中的get_hobby(cls)是什么意思

請問下:@classmethod

? ? ? ? ? ? ? ? ? ? ?def get_hobby(cls):

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?return ?cls.hobby

這里的cls是什么對象?為什么在調用時Programer.get_hobby()中沒有cls傳入,而是用(空)來調用?

正在回答

3 回答

和self一樣理解就好了,或者你可以理解為“規定”

0 回復 有任何疑惑可以回復我~

通過@classmethod,get_hobby()就是一個類方法,cls表示class,在調用的時候都是將類以隱含的參數傳遞過去的,所以是用空來調用。

class ParentClass(object):
?? ?
??? var = "test for parent"

??? @classmethod
??? def clsmethod(cls):
??????? print cls.var

class SubClass(ParentClass):
?? ?
??? var = "test for sub"

在這個例子中,ParentClass.clsmethod輸出為 “test for parent”,而Subclass.clsmethod輸出為“test for sub”,通過此比較很好的詮釋了@classmethod類方法隱式傳入的第一個參數也就是cls,是當前類,而不是父類。同時類方法操作的是class 類對象提供的內部信息。

還有https://www.zhihu.com/question/22869546,在這個鏈接里面可以看到作者的調用過程,比較詳細,希望對你有幫助。

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

請問代碼中的get_hobby(cls)是什么意思

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號