Question about sorted in Python 3.0rc1

Sion Arrowsmith siona at chiark.greenend.org.uk
Mon Sep 22 13:32:04 CEST 2008


josh logan  <dear.jay.logan at gmail.com> wrote:
>sorted(P) # throws TypeError: unorderable types Player() < Player()
>
>The sorted function works when I define __lt__.
>I must be misreading the documentation, because I read for the
>documentation __cmp__ that it is called if none of the other rich
>comparison functions are defined.

You're either misreading or forgetting that __eq__ and __ne__,
which you define, are rich comparison functions. __cmp__ will only
be called for a comparison when *none* of the rich comparison
functions are defined, not just the one in question.

-- 
\S -- siona at chiark.greenend.org.uk -- http://www.chaos.org.uk/~sion/
   "Frankly I have no feelings towards penguins one way or the other"
        -- Arthur C. Clarke
   her nu becomeþ se bera eadward ofdun hlæddre heafdes bæce bump bump bump



More information about the Python-list mailing list