Commit 77493201 authored by Senthil Kumaran's avatar Senthil Kumaran

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

Patch contributed by Jelle Zijlstra.
parent 2daf8e7f
...@@ -1171,16 +1171,28 @@ You probably tried to make a multidimensional array like this:: ...@@ -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 ...@@ -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 ...@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment