[Python-Dev] Attribute lookup ambiguity
chambon.pascal at wanadoo.fr
Tue Mar 23 21:57:22 CET 2010
Greg Ewing a écrit :
> Pascal Chambon wrote:
>> I don't follow you there - in my mind, the default __getattribute__
>> could simply have wrapped all its operations inside soem kind of
>> "try..catch AttributeError:" mechanism, and thus been able to
>> fallback to __getattr__ in any way.
> But then it would be incorrect to say that "__getattribute__
> raises an exception".
> When we say that a function raises an exception, we normally
> mean that the exception propagates out of the function and
> can be seen by the caller, not that it was raised and caught
> somewhere inside the function.
Indeed, but I've never run into any doc mentionning that the default
__getattribute__ raised in exception instead of forwarding to
__getattr__ by itself.
All I've found is "If the class also defines __getattr__()
the latter will not be called unless __getattribute__()
either calls it explicitly or raises an AttributeError
that sentence which simply offers two alternatives for the behaviour of
customized __gettattribute__ methods, without giving any hint on the
behaviourthat was chosen when implementing object.__gettattribute__.
Or am I missing some other doc which I'm supposed to know :?
"In the face of ambiguity, refuse the temptation to guess", as we say
anyway, so I propose we patch the doc to clarify this point for newcomers ^^
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Python-Dev