[issue38941] xml.etree.ElementTree.Element inconsistent warning for bool
Guido van Rossum
report at bugs.python.org
Sun Dec 1 14:20:28 EST 2019
Guido van Rossum <guido at python.org> added the comment:
I'm +1 on adding the deprecation and changing it to an error in the future.
I think it's an anti-pattern that objects with complex behavior that includes some sequence behavior allow the fallback behavior for checking the empty sequence. I recall being bitten by this nearly 20 years ago (at Zope) when some database class used this pattern -- somehow the app ended up thinking there was no database at all when in fact there was one but it was empty, and it reinitialized the database with bad results.
The fallback from truth testing to __len__() is built into the language and cannot be changed, but we *can* override __bool__() to raise an exception, and I think that's what we should do. (Clearly that's also what we were planning to do, hence the warning in the Python version.)
----------
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue38941>
_______________________________________
More information about the Python-bugs-list
mailing list