s...@pobox.com wrote: > Of course, the more complex the objects you are comparing the > stronger the recommendation agaist using 'is' to compare two objects.
Why is there so much voodoo advice about "is"? Is object identity really such a scary concept that people are frightened of it? Mutable versus immutable is irrelevant. The complexity of the object is irrelevant. The phase of the moon is irrelevant. The *only* relevant factor is the programmer's intention: If you want to test whether two objects have the same value (equality), the correct way to do it is with "==". If you want to test whether two objects are actually one and the same object, that is, they exist at the same memory location (identity), the correct way to do it is with "is". If you find it difficult to think of a reason for testing for identity, you're right, there aren't many. Since it's rare to care about identity, it should be rare to use "is". But in the few times you do care about identity, the correct solution is to use "is" no matter what sort of object it happens to be. It really is that simple. -- Steven -- http://mail.python.org/mailman/listinfo/python-list