元类编程--property动态属性

Posted Erick - LONG

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了元类编程--property动态属性相关的知识,希望对你有一定的参考价值。

from datetime import date, datetime
class User:
    def __init__(self, name, birthday):
        self.name = name
        self.birthday = birthday
        self._age = 0

    # def get_age(self):
    #     return datetime.now().year - self.birthday.year

    @property #动态属性
    def age(self): #属性描述符,get方法
        return datetime.now().year - self.birthday.year

    @age.setter
    def age(self, value):
        self._age = value

if __name__ == "__main__":
    user = User("bobby", date(year=1987, month=1, day=1))
    user.age = 30
    print (user._age)
    print(user.age)

 

以上是关于元类编程--property动态属性的主要内容,如果未能解决你的问题,请参考以下文章

3.python元类编程

第八章python元类编程

元类中的属性()设置器问题

Python元类编程

为啥元类适用于类属性但@classmethod @property 不适用?

使用元类动态设置属性