Python進階-----靜態方法(@staticmethod)
阿新 • • 發佈:2018-10-15
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)