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__
    

      

  • 相关阅读:
    linux 获取外网ip地址
    出现大量rcuob进程
    禁用 ipv6
    centos yum 坏掉 db 损坏
    关于 solusvm
    VMWare 下 Ubuntu 18.04 的文件共享
    安装最新版本 nginx
    大量的Close_wait 发现的 too many open file 错
    Linux安装Desktop 和 vncserver
    MySQL in和limit不能连用的问题
  • 原文地址:https://www.cnblogs.com/zydeboke/p/11259059.html
Copyright © 2011-2022 走看看