Interesting behaviour of the assignment

Alex Martelli aleaxit at yahoo.com
Fri Dec 29 18:45:41 EST 2000


"Michael Esveldt" <dante at oz.net> wrote in message
news:92j4n1$mhu$0 at 216.39.162.232...
> [Thomas Wouters]
> > In other words, 'x == y' first does 'x is y', and if it's true, the
> > result
> > of the operation is true. Only if 'x is y' is false will it start the
> > (possibly very expensive) comparison-by-contents operation.
>
> This is a somewhat ignorant question, but if 'x == y' checks for 'x is
> y' first, why use 'is' at all? If you only get a tiny bit of speed out
> of using 'is' is it worth it to have this in the language at all? (Not
> that it would ever change, just curious.)

Moshe gave an example: *defeating* polymorphism attempts on
the part of object implementers, based on their implementing
__cmp__.  Why one would actively work to impede polymorphism,
I don't know, but it sure can work that way.


Alex






More information about the Python-list mailing list