1. 程式人生 > >Python進階-----property用法(實現了get,set,delete三種方法)

Python進階-----property用法(實現了get,set,delete三種方法)

一、可以利用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)屬性時執行==='