[Python-Dev] redefining is
Andrew Koenig
ark-mlist at att.net
Fri Mar 19 15:08:45 EST 2004
> > By "object equivalence", I mean mutual substitutability--which is the
> same
> > as identity for mutable objects, but not for immutable ones.
>
> So what does it mean for immutable objects?
Two immutable objects are equivalent if and only if they have the same type
and all of their attributes are (recursively) equivalent.
> Your raise/except example is bad. Do you have another one in which
> people could not just use '==' instead of 'is'?
x = ([], [])
y = ([], [])
Here, x == y is true, but x and y are not equivalent. We can prove this
inequivalence by executing x[0].append(42) and noting that y[0] does not
change.
a = []
b = []
x = (a, b)
y = (a, b)
Here, x == y is true, and x and y are equivalent.
More information about the Python-Dev
mailing list