Issue27203 - Fix doctests Doc/faq/programming.rst.

Patch contributed by Jelle Zijlstra.
This commit is contained in:
Senthil Kumaran 2016-06-04 20:07:34 -07:00
parent 2daf8e7f76
commit 7749320142

View file

@ -1171,16 +1171,28 @@ You probably tried to make a multidimensional array like this::
>>> A = [[None] * 2] * 3 >>> 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 >>> A
[[None, None], [None, None], [None, None]] [[None, None], [None, None], [None, None]]
But when you assign a value, it shows up in multiple places: But when you assign a value, it shows up in multiple places:
>>> A[0][0] = 5 .. testsetup::
>>> A
[[5, None], [5, None], [5, None]] 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 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 creates references to the existing objects. The ``*3`` creates a list
@ -1664,9 +1676,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 next freshly created object is allocated at the same position in memory. This
is illustrated by this example: is illustrated by this example:
>>> id(1000) >>> id(1000) # doctest: +SKIP
13901272 13901272
>>> id(2000) >>> id(2000) # doctest: +SKIP
13901272 13901272
The two ids belong to different integer objects that are created before, and The two ids belong to different integer objects that are created before, and
@ -1675,9 +1687,9 @@ objects whose id you want to examine are still alive, create another reference
to the object: to the object:
>>> a = 1000; b = 2000 >>> a = 1000; b = 2000
>>> id(a) >>> id(a) # doctest: +SKIP
13901272 13901272
>>> id(b) >>> id(b) # doctest: +SKIP
13891296 13891296