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)
原文地址:https://www.cnblogs.com/callyblog/p/11335695.html