On Wednesday, September 5, 2012 10:41:19 PM UTC+8, Steven D'Aprano wrote: > On Wed, 05 Sep 2012 10:00:09 -0400, Dave Angel wrote: > > > > > On 09/05/2012 09:19 AM, Franck Ditter wrote: > > >> Thanks to all, but : > > >> - I should have said that I work with Python 3. Does that matter ? - > > >> May I reformulate the queston : "a is b" and "id(a) == id(b)" > > >> both mean : "a et b share the same physical address". Is that True ? > > >> Thanks, > > > > > > No, id() has nothing to do with physical address. The Python language > > > does not specify anything about physical addresses. Some > > > implementations may happen to use physical addresses, others arbitrary > > > integers. And they may reuse such integers, or not. Up to the > > > implementation. > > > > True. In principle, some day there might be a version of Python that runs > > on some exotic quantum computer where the very concept of "physical > > address" is meaningless. Or some sort of peptide or DNA computer, where > > the calculations are performed via molecular interactions rather than by > > flipping bits in fixed memory locations. > > > > But less exotically, Frank isn't entirely wrong. With current day > > computers, it is reasonable to say that any object has exactly one > > physical location at any time. In Jython, objects can move around; in > > CPython, they can't. But at any moment, any object has a specific > > location, and no other object can have that same location. Two objects > > cannot both be at the same memory address at the same time. > > > > So, for current day computers at least, it is reasonable to say that > > "a is b" implies that a and b are the same object at a single location. > > > > The second half of the question is more complex: > > > > "id(a) == id(b)" *only* implies that a and b are the same object at the > > same location if they exist at the same time. If they don't exist at the > > same time, then you can't conclude anything. > > > > > > > > -- > > Steven The function id(x) might not be implemented as an address in the user space.
Do we need to distinguish archived objets and objects in the memory? -- http://mail.python.org/mailman/listinfo/python-list