[Python-Dev] redefining is (original) (raw)

Andrew Koenig ark-mlist at att.net
Fri Mar 19 16:50:01 EST 2004


So identity means the same object, and implies equivalence.

Yes.

Equivalence means they will always have the same value, even if you do something to one and not the other. This implies (current value) equality.

Yes, unless equality is defined weirdly. For example, IEEE floating-point NaN is supposed to be unequal to itself.

equality just means that they have the same value now.

I'm not sure the implication goes the other way. Consider a string-like type for which == ignores case. Then equivalence implies identity, but not the other way.

Since equivalence is a stronger form of equality, why not just use "===".

Seems plausible.

Anything that is === will also be ==, but the extra character will mark it as special. If the mark isn't strong enough, perhaps "=~="; in math the ~ often modifies equality to mean "not identical, but close enough".

I wish. But unfortunately sometimes x == x is False.

equalforever would also work, and be explicit. equalforever has the additional advantage that it could be written as a function rather than an operator during a trial period.

Indeed. I'd prefer something shorter, though, such as equiv.



More information about the Python-Dev mailing list