顾名思义,@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 取值操作