Am 21.01.2020 19:38 schrieb Chris Angelico:
On Wed, Jan 22, 2020 at 4:42 AM Stephen Tucker <stephen_tuc...@sil.org>
wrote:
and even that the first id(mytup) returns the same address as the
second
one, I am left wondering exactly what immutability is.
Let's look at id()'s documentation:
id(object)
Return the “identity” of an object. This is an integer which is
guaranteed to be unique and constant for this object during its
lifetime. Two objects with non-overlapping lifetimes may have the same
id() value.
Are you sure that it does? I can't reproduce this. When you slice the
first two from a tuple, you create a new tuple, and until the
assignment happens, both the new one and the original coexist, which
means they MUST have unique IDs.
I'd expect that, too, but an "atomic" reassignment would not contradict
the documentation.
Somehow, it seems, tuples can be reduced in length (from the far end)
(which is not what I was expecting), but they cannot be extended
(which I
can understand).
Different ID means different object, but identical ID doesn't mean
identical object. The Python implementation allows re-use of an object's
ID after the object has been destroyed, and the documentation mentions
this explicitly.
--
https://mail.python.org/mailman/listinfo/python-list