[Tutor] Nested use of replication operator on lists
Steven D'Aprano
steve at pearwood.info
Fri May 25 02:34:55 EDT 2018
On Thu, May 24, 2018 at 10:39:17PM -0700, Danny Yoo wrote:
> Each value in Python has an associated numeric address associated to it.
No they don't :-)
Each object in Python has an arbitrary numeric ID associated with it.
The Python language has no supported way to get the address of an
object. The id() function returns an opaque and officially meaningless
ID number, that is all.
It so happens that CPython uses the (memory) address of the object as
that ID number, but not all Python interpreters do the same. Jython and
IronPython, for example, assign IDs in consecutive order, so you will
get IDs like 20, 21, 22, 23, 24, etc.
(By memory, IronPython allocates the ID when the object is first
created, while Jython allocates an ID only when you ask for one.)
The reason IronPython and Jython do that is because they run inside an
environment where objects can be moved around memory by the memory
manager and garbage collector. So if an object X has address 1234 at one
moment, a little later it could be moved to address 9516. Using the
address would not be stable.
--
Steve
More information about the Tutor
mailing list