python的cls主要用在類方法定義,cls不是關(guān)鍵字,完全可以使用自己寫的任意變量代替實現(xiàn)一樣的效果。
普通的實例方法,第一個參數(shù)需要是self,它表示一個具體的實例本身。
如果用了staticmethod,那么就可以無視這個self,而將這個方法當(dāng)成一個普通的函數(shù)使用。
而對于classmethod,它的第一個參數(shù)不是self,是cls,它表示這個類本身。
deffoo1(self):
print"Hello",self
@staticmethod
deffoo2():
print"hello"
@classmethod
deffoo3(cls):
print"hello",cls
>>>a=A()
>>>a.foo1()#最常見的調(diào)用方式,但與下面的方式相同
Hello<__main__.Aobjectat0x9f6abec>
>>>A.foo1(a)#這里傳入實例a,相當(dāng)于普通方法的self
Hello<__main__.Aobjectat0x9f6abec>
>>>A.foo2()#這里,由于靜態(tài)方法沒有參數(shù),故可以不傳東西
hello
>>>A.foo3()#這里,由于是類方法,因此,它的第一個參數(shù)為類本身。
hello
>>>A#可以看到,直接輸入A,與上面那種調(diào)用返回同樣的信息。
以上內(nèi)容為大家介紹了python培訓(xùn)之cls是關(guān)鍵字嗎,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機構(gòu):千鋒教育。