
"Guido van Rossum" <guido@python.org> wrote in message news:200303151236.h2FCaJP06038@pcp02138704pcs.reston01.va.comcast.net. ..
But the order isn't meaningful. .... If I had to do it over again, I'd only implement == and != for objects of vastly differing types, and limit <, <=, >, >= to objects that are meaningfully comparable.
For user-defined types/classes, I presume that this would still mean deferring to the appropriate magic method (__cmp__ or __ge__?) to define 'meaningful'.
I'd like to to this in Python 3.0, but that probably means we'd have to start deprecating default comparisons except (in)equality in Python 2.4.
+1, I think. Based on reading cl.py, the validity of nonsense comparisons is one of the more surprising 'features' of Python for beginners -- who reasonably expect a TypeError or ValueError. Once they get past that, they are then surprised by the unstability across versions. Given that universal sorting of hetero-lists is now broken, I think it would be better to do away with it cleanly. It is seldom needed and would still be available with a user-defined sorting function (which requires some thought as to what is really wanted). A Python version of the present algorithm could be included (in Tools/xx perhaps) for anyone who actually needs it. Terry J. Reedy