python 中 property 屬性的講解及應用
阿新 • • 發佈:2021-01-15
Python中property屬性的功能是:property屬性內部進行一系列的邏輯計算,最終將計算結果返回
property屬性的有兩種方式:
-
裝飾器 即:在方法上應用裝飾器
-
類屬性 即:在類中定義值為property物件的類屬性
裝飾器:
裝飾器類有三種訪問方式,並分別對應了三個被@property、@方法名.setter、@方法名.deleter修飾的方法,定義為對同一個屬性:獲取、修改、刪除
class Goods(object):
def __init__(self):
# 原價
self. original_price = 100
# 折扣
self.discount = 0.8
@property
def price(self):
# 實際價格 = 原價 * 折扣
new_price = self.original_price * self.discount
return new_price
@price.setter
def price(self, value):
self.original_price = value
@price. deleter
def price(self):
del self.original_price
obj = Goods()
obj.price # 獲取商品價格
obj.price = 200 # 修改商品原價
del obj.price # 刪除商品原價
類屬性
property方法中有個四個引數
-
第一個引數是方法名,呼叫 物件.屬性 時自動觸發執行方法,對應獲取功能
-
第二個引數是方法名,呼叫 物件.屬性 = XXX 時自動觸發執行方法,對應修改功能
-
第三個引數是方法名,呼叫 del 物件.屬性 時自動觸發執行方法,對應刪除功能
-
第四個引數是字串,呼叫 物件.屬性.
__doc__
,此引數是該屬性的描述資訊
'''
遇到問題沒人解答?小編建立了一個Python學習交流QQ群:778463939
尋找有志同道合的小夥伴,互幫互助,群裡還有不錯的視訊學習教程和PDF電子書!
'''
class Goods(object):
def __init__(self):
# 原價
self.original_price = 100
# 折扣
self.discount = 0.8
def get_price(self):
# 實際價格 = 原價 * 折扣
new_price = self.original_price * self.discount
return new_price
def set_price(self, value):
self.original_price = value
def del_price(self):
del self.original_price
PRICE = property(get_price, set_price, del_price, '價格屬性描述...')
obj = Goods()
obj.PRICE # 獲取商品價格
obj.PRICE = 200 # 修改商品原價
del obj.PRICE # 刪除商品原價