Python使用@property装饰器
本文最后更新于:1 年前
1 - 1 这里已经使用特性的设值方法了,确保所创建实例的weight属性不能为负值。2@property装饰读值方法。3 实现特性的方法,其名称都与公开属性的名称一样——weight。4 真正的值存储在私有属性__weight中
class LineItem:
"""使用@property装饰器实现可读写的特性"""
"""表示订单中商品的类"""
def __init__(self, description, weight, price):
self.description = description
self.weight = weight
self.price = price
def subtotal(self):
return self.weight * self.price
@property
def weight(self):
return self.__weight
@weight.setter
def weight(self, value):
if value > 0:
self.__weight = value
else:
raise ValueError('value must be > 0')
2 - 5 被装饰的读值方法有个.setter属性,这个属性也是装饰器;这个装饰器把读值方法和设值方法绑定在一起。6 如果值大于零,设置私有属性__weight。7 否则,抛出ValueError异常
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!