On Aug 24, 2010, at 10:26 AM, Benjamin Peterson wrote:
2010/8/24 P.J. Eby <p...@telecommunity.com>:
At 03:37 PM 8/24/2010 +0200, Hrvoje Niksic wrote:
a) a "business" case of throwing anything other than
AttributeError from
__getattr__ and friends is almost certainly a bug waiting to
happen, and
FYI, best practice for __getattr__ is generally to bail with an
AttributeError as soon as you see double underscores in the name,
unless you
intend to support special attributes.
Unless you're in an old-style class, you shouldn't get an double
underscore methods in __getattr__ (or __getattribute__). If you do,
it's a bug.
Uh, did you see the message that was in response to?
Maybe it should be a bug report?
>>> class Foo(object):
... def __getattr__(self, name): print "ATTR:",name
... def __iter__(self): yield 1
...
>>> print list(Foo())
ATTR: __length_hint__
[1]
James
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com