python __getattr__和 __getattribute__

时间:2023-03-10 00:22:54
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)