On Mar 17, 2010, at 5:02 PM, Greg Ewing wrote: > Raymond Hettinger wrote: > >> Python 3 doesn't need it because it is possible to not give a result >> at all. Python 2 does need it because we have to give *some* >> result. > > That's not true -- it's possible for comparisons to raise > an exception in 2.x, and they sometimes do already: Complex objects do not support __float__. Decimal objects do. If an object supports __float__, then a float comparison coerces its other argument via __float__ and the other argument never gets a chance to raise an exception. >>> class D: def __float__(self): return 3.14 >>> float(D()) 3.1400000000000001 >>> float(complex(3.14)) Traceback (most recent call last): File "<pyshell#14>", line 1, in <module> float(complex(3.14)) TypeError: can't convert complex to float >>> D() < 10.0 True >>> complex(3.14) < 10.0 Traceback (most recent call last): File "<pyshell#16>", line 1, in <module> complex(3.14) < 10.0 TypeError: no ordering relation is defined for complex numbers Raymond
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