__getattr__
查找不到类属性的时候调用
class BeiMenChuiXue: def __init__(self, name): self.name = name def __getattr__(self, item): print("%s not find", item) raise Exception("实例方法没有找到") if __name__ == ‘__main__‘: bei_men_chui_xue = BeiMenChuiXue("北门吹雪") print(bei_men_chui_xue.name) # 没有这个属性 print(bei_men_chui_xue.hello)
__getattribute__
无条件进入,无论是查找属性是否存在,能不重写则不去重写
class BeiMenChuiXue: def __init__(self, name): self.name = name def __getattribute__(self, item): print("%s find" % item) if __name__ == ‘__main__‘: bei_men_chui_xue = BeiMenChuiXue("北门吹雪") # 能找到,会发现其实是__getattribute__的返回值 print(bei_men_chui_xue.name) # 没有这个属性 print(bei_men_chui_xue.hello)
原文地址:https://www.cnblogs.com/2bjiujiu/p/9142543.html
时间: 2024-10-02 20:06:12