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