讲解对象:Python装饰器 作者:融水公子 rsgz 目的: 1 想要更精确的调整控制属性访问权限,你可以使用 @property 装饰器
用途: 1 @property 装饰器就是负责把方法变成属性调用的
实例: 1 有个银行账号的例子,我们要确保没人能设置金额为负 2 有个只读属性 cny 返回换算人民币后的金额
源代码: #!/usr/bin/env python3 class Account(object): """账号类, amount 是美元金额.""" def __init__(self, rate): self.__amt = 0 self.rate = rate
@property def amount(self): """账号余额(美元)""" return self.__amt
@property def cny(self): """账号余额(人民币)""" return self.__amt * self.rate
@amount.setter def amount(self, value): if value < 0: print("Sorry, no negative amount in the account.") return self.__amt = value
if __name__ == '__main__': acc = Account(rate=6.6) # 汇率 acc.amount = 20 print("Dollar amount:", acc.amount) print("In CNY:", acc.cny) acc.amount = -100 print("Dollar amount:", acc.amount)
|