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


@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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM