id( ) function question

raffaele ponzini raffaele.ponzini at gmail.com
Wed Oct 14 06:46:11 EDT 2009


Dear all,
I have a question concerning the output of the id() function.
In particular since is should:
""
Return the identity of an object.  This is guaranteed to be unique among
simultaneously existing objects.  (Hint: it's the object's memory address.)
""
i expect that for two differnt objects it returns two differnt adress in memory.

Let's seee a correct case:
>>> a=10
>>> b=20
>>> a is b
False
>>> id(a)
9986060
>>> id(b)
9985940
>>> c=a
>>> c is a
True
>>> id(c)
9986060
>>> id(a)
9986060

And now a strange (for me) output:
>>> d=10 #here i'm assingning a integer value to a fresh new variable d without any kind of  link to the variable a
>>> d is a
True
>>> d==a
True
>>> id(a)
9986060
>>> id(b)
9985940
>>> id(d)
9986060
>>> a=1e10
>>> d=1e10
>>> d is a
False
>>> id(a)
11388984
>>> id(d)
11388920
>>>

-- 
lele



More information about the Python-list mailing list