From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Sun, 31 May 2026 12:15:58 +0000 (+0200) Subject: [3.14] gh-150636: Clarify difference between copy.copy() and the copy() methods ... X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=9d09f8b3b29db161977bfe90a3f5e9efa14d624e;p=thirdparty%2FPython%2Fcpython.git [3.14] gh-150636: Clarify difference between copy.copy() and the copy() methods (GH-150637) (GH-150666) (cherry picked from commit 1de909b32411fc1c4d4c42b4f8221b86096c6353) Co-authored-by: Serhiy Storchaka Co-authored-by: Pieter Eendebak Co-authored-by: Stan Ulbrych --- diff --git a/Doc/library/copy.rst b/Doc/library/copy.rst index 121c44a16ad4..39fc7800d03a 100644 --- a/Doc/library/copy.rst +++ b/Doc/library/copy.rst @@ -72,9 +72,13 @@ file, socket, window, or any similar types. It does "copy" functions and classes (shallow and deeply), by returning the original object unchanged; this is compatible with the way these are treated by the :mod:`pickle` module. -Shallow copies of dictionaries can be made using :meth:`dict.copy`, and -of lists by assigning a slice of the entire list, for example, -``copied_list = original_list[:]``. +Shallow copies of many collections can be made using the corresponding +:meth:`!copy` method (such as :meth:`list.copy`, :meth:`dict.copy` or +:meth:`set.copy`), and of sequences (such as lists or bytearrays) by making +a slice of the entire sequence (``sequence[:]``). +However, these methods and slicing can create an instance of the base type +when copying an instance of a subclass, whereas :func:`copy.copy` normally +returns an instance of the same type. .. index:: pair: module; pickle