zoukankan      html  css  js  c++  java
  • 【7.2】__getattr__、__getattribute__魔法函数

     1 #!/user/bin/env python
     2 # -*- coding:utf-8 -*-
     3 # __getattr__、__getattribute__
     4 # __getattr__ 就是在查找不到属性的时候调用
     5 # __getattribute__ 无条件进入__getattribute__
     6 from datetime import date
     7 
     8 
     9 class User:
    10     def __init__(self, name, birthday, info={}):
    11         self.name = name
    12         self.birthday = birthday
    13         self.info = info
    14 
    15     def __getattr__(self, item):
    16         return self.info[item]
    17 
    18     # def __getattribute__(self, item):
    19     #     return '__getattribute__'
    20 
    21 
    22 if __name__ == '__main__':
    23     user = User('zy', date(year=1998, month=6, day=8), {'company': 'imooc'})
    24     print(user.company)
    25     print(user.name)
    imooc
    zy
    

      

    #!/user/bin/env python
    # -*- coding:utf-8 -*-
    # __getattr__、__getattribute__
    # __getattr__ 就是在查找不到属性的时候调用
    # __getattribute__ 无条件进入__getattribute__
    from datetime import date
    
    
    class User:
        def __init__(self, name, birthday, info={}):
            self.name = name
            self.birthday = birthday
            self.info = info
    
        def __getattr__(self, item):
            return self.info[item]
    
        def __getattribute__(self, item):
            return '__getattribute__'
    
    
    if __name__ == '__main__':
        user = User('zy', date(year=1998, month=6, day=8), {'company': 'imooc'})
        print(user.company)
        print(user.name)
    __getattribute__
    __getattribute__
    

      

  • 相关阅读:
    POJ 3368.Frequent values
    HDOJ 1166.敌兵布阵
    javaWeb之文件下载
    javaWeb之文件上传
    centos系统下忘记了root密码怎么办?
    如何在centos下挂载与卸载磁盘
    验证码生成(java版本)
    javaweb怎么过滤乱码
    mysql修改默认字段大小
    我所知道的命名方式(软件)
  • 原文地址:https://www.cnblogs.com/zydeboke/p/11259059.html
Copyright © 2011-2022 走看看