8.1 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 # 将函数变成属性的方式访问,可以通过 user.age 访问  def age(self): return datetime.now().year - self.birthday.year

    @age.setter # 设置属性  user.age = 24 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) # --- 30
32

8.2 __getattr__、__getattribute__魔法函数

# __getattr__, __getattribute__ # __getattr__ 就是在查找不到属性的时候调用 class User: def __init__(self, info={}):
        self.info = info def __getattr__(self, item): # 属性不存在的时候,进入 return self.info[item] # return "not find " # def __getattribute__(self, item):   # 无条件的进入,所有属性的访问入口 #     return "lewen" if __name__ == "__main__": user = User(info={"company_name": "imooc", "name": "lewen"}) print(user.name)
---
lewen


点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部