mirror of
https://github.com/python/cpython.git
synced 2025-11-01 18:51:43 +00:00
Issue27203 - Fix doctests Doc/faq/programming.rst.
Patch contributed by Jelle Zijlstra.
This commit is contained in:
parent
2daf8e7f76
commit
7749320142
1 changed files with 20 additions and 8 deletions
|
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue