1:self表示為類(lèi)型為類(lèi)的object,而cls表示為類(lèi)也就是class
2:在定義普通方法的時(shí)候,需要的是參數(shù)self,也就是把類(lèi)的實(shí)例作為參數(shù)傳遞給方法,如果不寫(xiě)self的時(shí)候,會(huì)發(fā)現(xiàn)報(bào)錯(cuò)TypeError錯(cuò)誤,表示傳遞的參數(shù)多了,其實(shí)也就是調(diào)用方法的時(shí)候,將實(shí)例作為參數(shù)傳遞了,在使用普通方法的時(shí)候,使用的是實(shí)例來(lái)調(diào)用方法,不能使用類(lèi)來(lái)調(diào)用方法,沒(méi)有實(shí)例,那么方法將無(wú)法調(diào)用。
3:在定義靜態(tài)方法的時(shí)候,和模塊中的方法沒(méi)有什么不同,最大的不同就是在于靜態(tài)方法在類(lèi)的命名空間之間,而且在聲明靜態(tài)方法的時(shí)候,使用的標(biāo)記為@staticmethod,表示為靜態(tài)方法,在叼你用靜態(tài)方法的時(shí)候,可以使用類(lèi)名或者是實(shí)例名來(lái)進(jìn)行調(diào)用,一般使用類(lèi)名來(lái)調(diào)用
4:靜態(tài)方法主要是用來(lái)放一些方法的,方法的邏輯屬于類(lèi),但是有何類(lèi)本身沒(méi)有什么交互,從而形成了靜態(tài)方法,主要是讓靜態(tài)方法放在此類(lèi)的名稱(chēng)空間之內(nèi),從而能夠更加有組織性。
5:在定義類(lèi)方法的時(shí)候,傳遞的參數(shù)為cls.表示為類(lèi),此寫(xiě)法也可以變,但是一般寫(xiě)為cls。類(lèi)的方法調(diào)用可以使用類(lèi),也可以使用實(shí)例,一般情況使用的是類(lèi)。
6:在重載調(diào)用父類(lèi)方法的時(shí)候,最好是使用super來(lái)進(jìn)行調(diào)用父類(lèi)的方法。靜態(tài)方法主要用來(lái)存放邏輯性的代碼,基本在靜態(tài)方法中,不會(huì)涉及到類(lèi)的方法和類(lèi)的參數(shù)。類(lèi)方法是在傳遞參數(shù)的時(shí)候,傳遞的是類(lèi)的參數(shù),參數(shù)是必須在cls中進(jìn)行隱身穿
7:python中實(shí)現(xiàn)靜態(tài)方法和類(lèi)方法都是依賴python的修飾器來(lái)實(shí)現(xiàn)的。靜態(tài)方法是staticmethod,類(lèi)方法是classmethod。
以上內(nèi)容為大家介紹了Python類(lèi)方法與靜態(tài)方法說(shuō)明,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。