@property装饰器
-
property属性内部进行一系列的逻辑计算,将计算结果返回
-
检查参数
-
把一个方法变成属性调用的
-
简单逻辑运算
from datetime import date class Monkey(object): def __init__(self, new_name, term, height): self.name = new_name self.term = term self.__height = height @property def suppress(self): return date.today().year - self.term @property def height(self): return self.__height # 一定要是私有属性, 只读属性 @height.setter 验证参数 def height(self, value): if not isinstance(value, int): self.__height = value if __name__ == '__main__': monkey = Monkey('wukong', 500, 99) lock_up = monkey.suppress monkey.height = 200 height = monkey.height print(height)
-
简单逻辑运算
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 # 获取商品价格 80 obj.price = 200 # 修改商品原价 200 * 0.8 = 160 del obj.price # 删除商品原价 删除之后在打印,报错啦