一尘不染

Python__getattr__和__getattribute__之间的区别

python

我想了解何时使用__getattr____getattribute__。该文件提到了__getattribute__适用于新样式类。什么是新型类?


阅读 373

收藏
2020-02-19

共1个答案

一尘不染

之间的主要差异__getattr__,并__getattribute__是,__getattr__如果属性没有被发现通常的途径,只调用。这对于实现缺少属性的后备方法很有用,并且可能是你想要的两个之一。

__getattribute__在查看对象的实际属性之前调用,因此正确实现可能很棘手。你可以非常轻松地进行无限递归。

新样式类是从派生而来的object,旧样式类是Python 2.x中没有显式基类的类。但旧式和新式的类之间的区别并不之间进行选择时的重要的__getattr____getattribute__

你几乎可以肯定要__getattr__

2020-02-19