[Tutor] The Card Game

Christopher King g.nius.ck at gmail.com
Fri Jul 1 16:24:06 CEST 2011


Sorry, I haven't upgraded to 3 yet.

On Thursday, June 30, 2011, Steven D'Aprano <steve at pearwood.info> wrote:
> Christopher King wrote:
>
> I would go with __cmp__ which covers them all. 1 for greater, 0 for equal,
> -1 for less than.
>
>
>
> So-called "rich comparisons" using __lt__, __gt__, etc. have been preferred since Python 2.1. The major advantage of them is that they can be used for more complicated data types, e.g. with sets where > means superset and < means subset:
>
>
>>>> a = set([1, 2, 3, 4])
>>>> b = set([2, 3, 4, 5])
>>>>
>>>> a < b  # a is not a subset of b
> False
>>>> a > b  # neither is it a superset
> False
>>>> a == b  # and they're not equal either
> False
>>>> a & b  # but they do overlap:
> set([2, 3, 4])
>
>
>
> In Python 2.x, __cmp__ is only used as a fall-back if the rich comparisons aren't defined. In Python 3.x, __cmp__ is gone: even if you define it, it won't be used.
>
>
>
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
>


More information about the Tutor mailing list