[Python-Dev] Need discussion for a PR about memory and objects
On Sun, Nov 04, 2018 at 11:43:50AM +0100, Stephane Wirtel wrote:
> In this PR [https://github.com/python/cpython/pull/3382] "Remove reference
> address from the docs, as it only causes confusion", opened by Chris
> Angelico, there is a discussion about the right term to use for the
> address of an object in memory.
Why do we need to refer to the address of objects in memory?
Python's execution model is not based on addresses. We can't get the
address of an object or do anything with it (except via ctypes). At the
Python layer, objects just exist, they don't logically exist at any
In fact, they might not exist in a single location -- compound objects
are split across many locations or can share chunks of memory between
multiple objects. Objects in Jython and IronPython can move about, those
in PyPy can disappear from existence and reappear. The concept that
every object has exactly one fixed location simply isn't correct.
I understand that people wishing to understand the implementation
details of CPython objects will need to think about C-level concepts
like memory address, but at the Python level, "address" is not a very
meaningful or useful concept.