Q about object identity

Christian Heimes lists at cheimes.de
Tue Jun 3 17:08:46 EDT 2008


vronskij at gmail.com schrieb:
> Hello,
> 
> I am testing object identity.
> 
> If I do it from the interpreter, I get strange results.
> 
>>>> print [] is []
> False
> 
>>>> print id([]), id([])
> 3083942700 3083942700
> 
> 
> 
> Why is that? Isn't this an error?

No, it's not an error. You are getting this result because the list
implementation keeps a bunch of unused list objects in a free list. It's
an optimization trick. Python has to create two different list objects
for "[] is []" while it can reuse the same list object for id([]) == id([]).

Christian




More information about the Python-list mailing list