python 類方法 靜態方法 例項方法
阿新 • • 發佈:2018-12-17
#類方法能訪問類屬性,靜態方法不能訪問類屬性 #https://www.cnblogs.com/jayliu/p/9030725.html class A(object): @classmethod # 加上這句後 classKkk就成為了類方法,類和例項都可以訪問,但是類訪問 def classKkk(cls, x): print(cls, x) @staticmethod # 加上這句就成為了靜態方法,類和例項都可以訪問。 def staticKkk(x): print(x) def mmm(x): # 這是無敵普通函式 print(x) def kkk(self, x): # 例項方法,例項能訪問 print(self, x) A.classKkk(2)# <class '__main__.A'> 2 這裡類A可以直接訪問類方法classKkk,但是不能訪問例項方法kkk(會報錯的)。 # A.staticKkk(3) # 3 這裡類A也可以訪問靜態方法staticKkk, # A.kkk(A, 1) # <class '__main__.A'> 1 類要訪問例項方法需要加入引數,至於這個引數可以是A也可以是A() # A.mmm(3) # 3 物件可以訪問無敵普通函式 # a = A() # a.classKkk(6) # <class '__main__.A'> 6 例項訪問類方法,沒毛病 # a.staticKkk(7) # 7 # a.kkk(5) # <__main__.A object at 0x0000028A64394CC0> 5 例項訪問例項方法,沒毛病 # a.mmm(7) # 報錯,例項不能訪問普通函式