python __getattr__和 __getattribute__

__getattr__

这个魔法函数会在类中查找不到属性时调用

class User:
    def __init__(self):
        self.info = 1

    def __getattr__(self, item):
        return 'not found attribute'

if __name__ == "__main__":
    user = User()
    print(user.test)

 

__getattribute__

class User:
    def __init__(self):
        self.info = 1

    def __getattribute__(self, item): # 只要是instance.property这种查找方式都会进入这个魔法函数
        return "bobby"

if __name__ == "__main__":
    user = User()
    print(user.info)
    print(user.test)

 

posted @ 2019-08-11 17:22  下路派出所  阅读(296)  评论(0编辑  收藏  举报