Python是否同时具有__getattr__和__getattribute __

时间:2019-06-14 01:29:48

标签: python attributes

我知道方法__getattribute____getattr__的作用不同。前者负责所有属性访问,而后者(如果已定义)在前者引发AttributeError时被调用。

令我感到困惑的是,为什么对于一种通常试图消除混淆的语言,甚至存在两个与属性访问相关的名称相似的方法。我什至无法想到要定义__getattr__的情况;我只能在if语句或try语句中定义使用__getattribute__的{​​{1}}。此外,用于属性访问的内置函数名为object.__getattribute__,这会误导人们以为getattr是属性访问的首选方法。这两种方法背后的历史是什么,它们是否仍然存在是有充分的理由的?

0 个答案:

没有答案