[merge from 3.5] - Issue27203 - Fix doctests Doc/faq/programming.rst.
Patch contributed by Jelle Zijlstra.
This commit is contained in:
commit
2950776d36
|
@ -1172,16 +1172,28 @@ You probably tried to make a multidimensional array like this::
|
|||
|
||||
>>> A = [[None] * 2] * 3
|
||||
|
||||
This looks correct if you print it::
|
||||
This looks correct if you print it:
|
||||
|
||||
.. testsetup::
|
||||
|
||||
A = [[None] * 2] * 3
|
||||
|
||||
.. doctest::
|
||||
|
||||
>>> A
|
||||
[[None, None], [None, None], [None, None]]
|
||||
|
||||
But when you assign a value, it shows up in multiple places:
|
||||
|
||||
>>> A[0][0] = 5
|
||||
>>> A
|
||||
[[5, None], [5, None], [5, None]]
|
||||
.. testsetup::
|
||||
|
||||
A = [[None] * 2] * 3
|
||||
|
||||
.. doctest::
|
||||
|
||||
>>> A[0][0] = 5
|
||||
>>> A
|
||||
[[5, None], [5, None], [5, None]]
|
||||
|
||||
The reason is that replicating a list with ``*`` doesn't create copies, it only
|
||||
creates references to the existing objects. The ``*3`` creates a list
|
||||
|
@ -1665,9 +1677,9 @@ 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)
|
||||
>>> id(1000) # doctest: +SKIP
|
||||
13901272
|
||||
>>> id(2000)
|
||||
>>> id(2000) # doctest: +SKIP
|
||||
13901272
|
||||
|
||||
The two ids belong to different integer objects that are created before, and
|
||||
|
@ -1676,9 +1688,9 @@ objects whose id you want to examine are still alive, create another reference
|
|||
to the object:
|
||||
|
||||
>>> a = 1000; b = 2000
|
||||
>>> id(a)
|
||||
>>> id(a) # doctest: +SKIP
|
||||
13901272
|
||||
>>> id(b)
|
||||
>>> id(b) # doctest: +SKIP
|
||||
13891296
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue