一、可以利用property對靜態屬性的進行修改操作,包括設置和刪除屬性
1、調用靜態屬性===>在靜態屬性函數前先用@property;
2、設置靜態屬性===>在靜態屬性函數前加上@靜態屬性函數名.setter,同時靜態屬性函數要加上value參數;
3、刪除靜態屬性===>在靜態屬性函數前加上@靜態屬性函數名.deleter。
1 #方法一 2 class Foo: 3 @property 4 def A(self): 5 print('獲取(get)屬性時執行===') 6 7 @A.setter 8 def A(self,value): 9 print('設置(set)屬性時執行===') 10 11 @A.deleter 12 def A(self): 13 print('刪除(del)屬性時執行===') 14 f1 = Foo() 15 f1.A #'獲取(get)屬性時執行===' 16 f1.A = '1' #'設置(set)屬性時執行===' 17 del f1.A #'刪除(del)屬性時執行==='
二、上述操作還可以用如下方式實現
注意:靜態屬性 = property(get_靜態屬性,set_靜態屬性,del_靜態屬性),property中的參數位置一定要按照get set del的順序。
1 class Foo: 2 def get_A(self): 3 print('獲取(get)屬性時執行===') 4 def set_A(self,value): 5 print('設置(set)屬性時執行===') 6 def del_A(self): 7 print('刪除(del)屬性時執行===') 8 A = property(get_A,set_A,de_A) 9 10 f2 = Foo() 11 f2.A #'獲取(get)屬性時執行===' 12 f2.A = '2' #'設置(set)屬性時執行===' 13 del f2.A #'刪除(del)屬性時執行==='