Steven D'Aprano <steve+comp.lang.pyt...@pearwood.info>: > On Sat, 15 Feb 2014 14:07:35 +0200, Marko Rauhamaa wrote: >> Steven D'Aprano <steve+comp.lang.pyt...@pearwood.info>: >>> On Sat, 15 Feb 2014 12:13:54 +0200, Marko Rauhamaa wrote: >>>> 5. id(x) == id(y) iff x is y >>> >>> # Counter-example >>> py> x = 230000 >>> py> idx = id(x) >>> py> del x >>> py> y = 420000 >>> py> idy = id(y) >>> py> idx == idy >>> True >> >> I don't accept that as a counterexample.
> Why? Nowhere do I see the violating "x is y". > All I need to do is show a case where two distinct objects have the > same ID. How do you know objects are "distinct"? Myself, I would use the "is" test. >> That's the point. I don't think id() and "is" have any abstract >> meaning on top of the formal axioms. > > Who is talking about "abstract meaning"? I am. I mean, "implementation-independent". > Object identity is simple and well-defined in Python. I don't know why > you are so resistant to this. Read the documentation. It is not defined at all: Every object has an identity, a type and a value. An object’s identity never changes once it has been created; you may think of it as the object’s address in memory. The ‘is‘ operator compares the identity of two objects; the id() function returns an integer representing its identity. Thus "x and y are identical" *means* "x is y" and nothing else. Marko -- https://mail.python.org/mailman/listinfo/python-list