美文网首页
python元类编程(2)

python元类编程(2)

作者: TheRightPath1 | 来源:发表于2020-02-02 15:19 被阅读0次

    1. getattr魔法函数

    getattr魔法函数就是在查找不到属性的时候调用
    代码示例

    class Person(object):
    
        def __init__(self, age, name, info={}):
            self._age = age
            self.name = name
            self.info = info
    
        def __getattr__(self, item):
            # 参数item就是访问了但不存在的属性名称
            print(item)
            return self.info[item]
    
    
    if __name__ == '__main__':
        p = Person(20, '小明', {'data': '123'})
        print(p.data)
    

    运行结果

    data
    123
    

    2. getattribute魔法函数

    getattribute魔法函数就是只要访问类属性无论属性存在还是不存在都会先调用该方法
    代码实例

    class Person(object):
    
        def __init__(self, age, name, info={}):
            self._age = age
            self.name = name
            self.info = info
    
        def __getattribute__(self, item):
            return '属性'
    
    
    if __name__ == '__main__':
        p = Person(20, '小明', {'data': '123'})
        print(p.data)
        print(p.name)
    

    运行结果

    属性
    属性
    

    相关文章

      网友评论

          本文标题:python元类编程(2)

          本文链接:https://www.haomeiwen.com/subject/kzrqxhtx.html