没有合适的资源?快使用搜索试试~ 我知道了~
@property的理解和实例
0 下载量 51 浏览量
2020-12-22
05:15:45
上传
评论
收藏 30KB PDF 举报
温馨提示
试读
1页
python中有装饰器的概念,@property是装饰器的一种。 以下面的例子进行说明: 私有属性以双下划线__开头:外部不可通过instance.property来访问或者更改。如果一定要,可以通过setName(),getName()等方法实现,可是这样不简洁。 但是,使用@property可以优雅的对私有属性 __amt 进行访问。 acc.amount 使用@amount.setter可以优雅的对私有属性 __amt 进行更改。还能扩展功能,比如增加过滤条件。 acc.amount = 20 #!/usr/bin/env python3 class Account(object):
资源详情
资源评论
资源推荐
@property的理解和实例的理解和实例
python中有装饰器的概念,@property是装饰器的一种。
以下面的例子进行说明:
私有属性以双下划线__开头:外部不可通过instance.property来访问或者更改。如果一定要,可以通过
setName(),getName()等方法实现,可是这样不简洁。
但是,使用@property可以优雅的对私有属性 __amt 进行访问。
acc.amount
使用@amount.setter可以优雅的对私有属性 __amt 进行更改。还能扩展功能,比如增加过滤条件。
acc.amount = 20
#!/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)
作者:两周后6
weixin_38706531
- 粉丝: 3
- 资源: 945
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0