Question about sorted in Python 3.0rc1

josh logan dear.jay.logan at gmail.com
Mon Sep 22 15:07:47 CEST 2008


On Sep 22, 7:32 am, Sion Arrowsmith <si... at chiark.greenend.org.uk>
wrote:
> josh logan  <dear.jay.lo... 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 -- si... 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

Hello Sion,

When I don't define the __eq__ and __ne__ comparison functions, the
same unexpected behavior occurs.



More information about the Python-list mailing list