merge with 3.3

This commit is contained in:
Georg Brandl 2013-10-12 18:15:21 +02:00
commit 42840f017d
1 changed files with 26 additions and 0 deletions

View File

@ -1599,6 +1599,32 @@ You can program the class's constructor to keep track of all instances by
keeping a list of weak references to each instance.
Why does the result of ``id()`` appear to be not unique?
--------------------------------------------------------
The :func:`id` builtin returns an integer that is guaranteed to be unique during
the lifetime of the object. Since in CPython, this is the object's memory
address, it happens frequently that after an object is deleted from memory, the
next freshly created object is allocated at the same position in memory. This
is illustrated by this example:
>>> id(1000)
13901272
>>> id(2000)
13901272
The two ids belong to different integer objects that are created before, and
deleted immediately after execution of the ``id()`` call. To be sure that
objects whose id you want to examine are still alive, create another reference
to the object:
>>> a = 1000; b = 2000
>>> id(a)
13901272
>>> id(b)
13891296
Modules
=======