1. 程式人生 > >Python進階-----靜態方法(@staticmethod)

Python進階-----靜態方法(@staticmethod)

class icm 訪問類 prop urn turn pan python進階 spa

@staticmethod 靜態方法只是名義上歸屬類管理,但是不能使用類變量和實例變量,是類的工具包
放在函數前(該函數不傳入self或者cls),所以不能訪問類屬性和實例屬性

 1 class cal:
 2     cal_name = 計算器
 3     def __init__(self,x,y):
 4         self.x = x
 5         self.y = y
 6 
 7     @property           #在cal_add函數前加上@property,使得該函數可直接調用,封裝起來
 8     def cal_add(self):
 9
return self.x + self.y 10 11 @classmethod #在cal_info函數前加上@classmethon,則該函數變為類方法,該函數只能訪問到類的數據屬性,不能獲取實例的數據屬性 12 def cal_info(cls): #python自動傳入位置參數cls就是類本身 13 print(這是一個%s%cls.cal_name) #cls.cal_name調用類自己的數據屬性 14 15 @staticmethod #靜態方法 類或實例均可調用 16 def
cal_test(a,b,c): #改靜態方法函數裏不傳入self 或 cls 17 print(a,b,c) 18 c1 = cal(10,11) 19 cal.cal_test(1,2,3) #>>> 1 2 3 20 c1.cal_test(1,2,3) #>>> 1 2 3

Python進階-----靜態方法(@staticmethod)