[Python-checkins] Include memo in the documented signature of copy.deepcopy()

Miss Islington (bot) webhook-mailer at python.org
Thu Nov 1 17:35:20 EDT 2018


https://github.com/python/cpython/commit/b9c48a73bc26ee7c16df2a07e84d330b5474a643
commit: b9c48a73bc26ee7c16df2a07e84d330b5474a643
branch: 3.7
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: GitHub <noreply at github.com>
date: 2018-11-01T14:35:17-07:00
summary:

Include memo in the documented signature of copy.deepcopy()


* Include memo in the documented signature of copy.deepcopy()

The memo argument is mentioned lower on the doc page under writing a
`__deepcopy__` method, but is not included in the documented function signature.
This makes it easy to miss, and can lead to incorrect/buggy implementations of
`__deepcopy__` -- which is exatly what just happpend to me!
(cherry picked from commit 0200928e8df012d408530b06a98119024bc82511)

Co-authored-by: Stephan Hoyer <shoyer at gmail.com>

files:
M Doc/library/copy.rst

diff --git a/Doc/library/copy.rst b/Doc/library/copy.rst
index 2041d9175ea5..c7bd89f96372 100644
--- a/Doc/library/copy.rst
+++ b/Doc/library/copy.rst
@@ -22,7 +22,7 @@ Interface summary:
    Return a shallow copy of *x*.
 
 
-.. function:: deepcopy(x)
+.. function:: deepcopy(x[, memo])
 
    Return a deep copy of *x*.
 
@@ -52,7 +52,7 @@ copy operations:
 
 The :func:`deepcopy` function avoids these problems by:
 
-* keeping a "memo" dictionary of objects already copied during the current
+* keeping a ``memo`` dictionary of objects already copied during the current
   copying pass; and
 
 * letting user-defined classes override the copying operation or the set of
@@ -82,7 +82,7 @@ In order for a class to define its own copy implementation, it can define
 special methods :meth:`__copy__` and :meth:`__deepcopy__`.  The former is called
 to implement the shallow copy operation; no additional arguments are passed.
 The latter is called to implement the deep copy operation; it is passed one
-argument, the memo dictionary.  If the :meth:`__deepcopy__` implementation needs
+argument, the ``memo`` dictionary.  If the :meth:`__deepcopy__` implementation needs
 to make a deep copy of a component, it should call the :func:`deepcopy` function
 with the component as first argument and the memo dictionary as second argument.
 



More information about the Python-checkins mailing list