On Wed, 11 Sep 2013 22:41:50 +0200, Markus Rother wrote: > 2. Reduce removed from standard library. That is a big fail, in my > opinion.
And Guido's Time Machine strikes again! py> from functools import reduce py> reduce <built-in function reduce> [...] > 4. As has been mentioned already, some built-in functions do magic > stuff behind the scenes: > > >>> () == [] > False > > > But: > > > >>> bool(().__eq__([])) > True > > > Because: > > > >>> ().__eq__([]) > NotImplemented > > > which yields True when cast to boolean. """ I don't see that this is a gotcha, let alone a design mistake. There's no reason to be calling __eq__ directly instead of == but if you do, you're responsible for handling the operator protocol yourself. Namely, if the operator special method returns NotImplemented, you're supposed to reverse the operands and try again. -- Steven -- https://mail.python.org/mailman/listinfo/python-list