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__() <http://docs.python.org/reference/datamodel.html#object.__getattr__>, the latter will not be called unless __getattribute__() <http://docs.python.org/reference/datamodel.html#object.__getattribute__> either calls it explicitly or raises an AttributeError <http://docs.python.org/library/exceptions.html#exceptions.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 ^^ Regards, Pascal -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20100323/088e9338/attachment.html>
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4