Lisandro Dalcin, 22.02.2011 21:41:
Take a look here: http://bugs.python.org/issue9666
'hasattr' default behaviour should be changed to suppress only
AttributeError exceptions. Other should pass through.
+1, I think I even faintly recall that discussion. What a lengthy thread...
http://mail.python.org/pipermail/python-dev/2010-August/103178.html
I don't even recall when I last used hasattr(). Given how dumb it is to ask
for an attribute, let someone else throw it away for you and then ask again
to get it, I don't see much point in using it at all. I can write exception
catching code myself, thanks.
Should we do something about this in Cython? We currently use
PyObject_HasAttr(), but even in Python 3.2 this is not the same as
builtins.hasattr(), it swallows any exception (do you think this is a
bug in core Python?).
It was at least considered:
http://mail.python.org/pipermail/python-dev/2010-August/103203.html
I'm inclined to fix the behavior for ALL Python
versions to suppress only AttributeError.
How? Would you implement a hasattr() helper that uses PyObject_GetAttr()
and Does The Right Thing?
In any case, I personally don't care so much about hasattr(), but I'm +1
for Python compatibility, and +1 for getting the fixed Py3.2 behaviour in
all Python versions. There's a reason this was fixed in CPython, it's a
pretty clear bug.
Stefan
_______________________________________________
cython-devel mailing list
cython-devel@python.org
http://mail.python.org/mailman/listinfo/cython-devel