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