我试图理解__getattr__
和__getattribute__
之间的区别,然而,我在这方面做得不够好。
堆栈溢出问题的answer 说:
__getattribute__
是在查看对象的实际属性之前调用的,因此要正确实现可能很棘手。你可以很容易地在无限递归中结束。
我完全不知道那是什么意思。
然后它继续说:
你几乎肯定想要
__getattr__
。
为什么?
我读到如果__getattribute__
失败,就会调用__getattr__
。那么为什么会有两种不同的方法做同样的事情呢?如果我的代码实现了新的样式类,我应该使用什么?
我正在寻找一些代码示例来解决这个问题。我已经搜索了我最大的能力,但我找到的答案并没有彻底讨论这个问题。
如果有任何文档,我随时准备阅读。
https://stackoverflow.com/questions/4295678
复制相似问题