zoukankan      html  css  js  c++  java
  • __getattr__属性查找

    from datetime import date
    
    """
    __getattr__ : 在查找不到对象的属性时调用
    
    __getattribute__ : 在查找属性之前调用(一般都不要覆写)
    
    所以,访问的属性的调用顺序是:
        __getattribute__  > 对象属性 > __getattr__
    """
    
    
    class User:
        def __init__(self, name, birthday=None):
            self.name = name
            self.birthday = birthday
    
        def __getattr__(self, item):
            '''可以在这里进行一些简单的操作'''
            return "Not Found"
    
        def __getattribute__(self, item):
            '''这是所有属性访问的入口, 如果return "aa" , 那么访问user对象的任何属性都会返回aa '''
            pass
    
    if __name__ == '__main__':
        user = User('小明')
        print(user.name)  # 小明 , 在user对象中可以找到name属性,所以不会进入到__getattr__方法
        print(user.age)  # Not Found , 在user对象中找不到age属性,所以会进入到__getattr__方法,然后返回一个Not Found
  • 相关阅读:
    Nodejs----基本数据类型
    VUE----整理
    Linux----知识储备
    Linux----常用操作
    GIT-常用操作
    CAS 4.0 配置开发手册(转)
    cas配置全攻略(转)
    cas sso入门(转)
    cas sso原理(转)
    spring web flow 2.0入门(转)
  • 原文地址:https://www.cnblogs.com/z-qinfeng/p/12041465.html
Copyright © 2011-2022 走看看