小编典典

__getattr__ 与 __getattribute__ 之间的区别

all

我试图了解何时使用__getattr__or
__getattribute__文档中提到的__getattribute__适用于新式类。什么是新式班?


阅读 239

收藏
2022-03-11

共1个答案

小编典典

__getattr__和之间的一个关键区别__getattribute____getattr__只有在没有以通常方式找到属性时才会调用它。它有利于实现缺失属性的后备,并且可能是您想要的两个之一。

__getattribute__在查看对象的实际属性之前调用,因此正确实现可能很棘手。您可以很容易地以无限递归结束。

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

你几乎肯定想要__getattr__

2022-03-11