diff options
author | Stephan Hoyer <shoyer@gmail.com> | 2018-10-29 18:30:12 (GMT) |
---|---|---|
committer | Brian Curtin <brian@python.org> | 2018-10-29 18:30:12 (GMT) |
commit | 0200928e8df012d408530b06a98119024bc82511 (patch) | |
tree | 45ec5b565af6c1f3fae1a2f2110b558ceed91576 | |
parent | 3b05ad7be09af1d4510eb698b0a70d36387f296e (diff) | |
download | cpython-0200928e8df012d408530b06a98119024bc82511.zip cpython-0200928e8df012d408530b06a98119024bc82511.tar.gz cpython-0200928e8df012d408530b06a98119024bc82511.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!
-rw-r--r-- | Doc/library/copy.rst | 6 |
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. |