
[Andrew Koenig]
Yes. If you want to present a 3-way comparison to users, an underlying 3-way comparison is the fastest way to do it. The trouble is that a 3-way comparison is definitely not the fastest way to present a 2-way comparison to users.
So if you want users to see separate 2-way and 3-way comparisons, I think the fastest way to implement them is not to try to force commonality where none exists.
This seems an argument for keeping both __cmp__ and the six __lt__ etc. Yet TOOWTDI makes me want to get rid of __cmp__.
Recent experience with sets.py shows that __cmp__ has a high PITA factor when combined rich comparisons. There was no good way to produce all of the desired behaviors: * <, <=, >, >= having subset interpretations * __cmp__ being marked as not implemented * cmp(a,b) not by-passing __cmp__ when __lt__ and __eq__ were defined. The source of the complications is that comparing Set('a') and Set('b') returns False for *all* of <, <=, ==, >=, >. Internally, three-way compares relied on the falsehood of some implying the truth of others. Raymond Hettinger ################################################################# ################################################################# ################################################################# ##### ##### ##### ################################################################# ################################################################# #################################################################