Velocity Reviews > id( ) function question

# id( ) function question

raffaele ponzini
Guest
Posts: n/a

 10-14-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

>>> d is a

True
>>> d==a

True
>>> id(a)

9986060
>>> id(d)

9986060

But if I chose as a value another number (a big one, let say 1e10) I
get what I will expect also in the case of the chose of the integer 10
showed above:
>>> a=1e10
>>> d=1e10
>>> d is a

False
>>> id(a)

11388984
>>> id(d)

11388920
>>>

can you please explain me the reasion of this strange behaviour.
Thanks,
--
--
lele