Hi Python-list folk,
I am sure this has been answered many times before, but I need to ask it
again.
Given that the following is valid Python 2.7.10 (when keyboarded into Idle):
mytup = ("q", "w", "e")
id(mytup)
mytup = mytup [:2]
id(mytup)
and even that the first id(mytup) returns the same address as the second
one, I am left wondering exactly what immutability is.
I am left concluding that mytup is not actually a tuple (even though type
(mytup) tells me that it is).
My only explanation is that mytup is, actually, a pointer to a tuple; the
pointer can't change, but the contents of that pointer (or the data to
which the pointer points) can change.
That said, if I then type
mytup = mytup + ("r", "t")
id(mytup)
I find that this third id call returns a different address from the one
returned by the first two.
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).
I am probably confused, ignorant, stupid, or any combination of the above.
Can you please help me become less so?
Many thanks.
Stephen Tucker.
--
https://mail.python.org/mailman/listinfo/python-list