分享

Python装饰器

 融水公子 2019-07-04

讲解对象: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)

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多