@property属性装饰器

顾名思义,@property就是一个跟属性相关的装饰器, 使用了它之后,取值和赋值操作都变得简洁

from datetime import date, datetime


class User:
    def __init__(self, name, birthday):
        self.name = name
        self.birthday = birthday
        self._age = 0

    # 相当于get操作
    @property
    def age(self):
        # return datetime.now().year - self.birthday.year
        return self._age

    # 相当于set操作
    @age.setter
    def age(self, value):
        self._age = value


if __name__ == '__main__':
    user = User('lucy', date(year=2000, month=1, day=2))
    print(user.age)  # 如果age方法上没有property装饰器,这样是不行的

    user.age = 66  # 赋值操作
    print(user.age)  # 66 取值操作
原文地址:https://www.cnblogs.com/z-qinfeng/p/12041426.html