summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2018-11-01 21:35:26 (GMT)
committerGitHub <noreply@github.com>2018-11-01 21:35:26 (GMT)
commit49171877ddbbcb9b9a38b30e698ee9f8b826b297 (patch)
tree3444dcf15c462bf042cbbaaf7b6019194bc5f4c7
parent7344b9fa0ef7bd8b902e7aa9a8f74b5dce915e59 (diff)
downloadcpython-49171877ddbbcb9b9a38b30e698ee9f8b826b297.zip
cpython-49171877ddbbcb9b9a38b30e698ee9f8b826b297.tar.gz
cpython-49171877ddbbcb9b9a38b30e698ee9f8b826b297.tar.bz2
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@gmail.com>
-rw-r--r--Doc/library/copy.rst6
1 files changed, 3 insertions, 3 deletions
diff --git a/Doc/library/copy.rst b/Doc/library/copy.rst
index 2041d91..c7bd89f 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.