From 2fb2a23cbd41b640afda105ed767778ab191cbee Mon Sep 17 00:00:00 2001 From: "Miss Islington (bot)" <31488909+miss-islington@users.noreply.github.com> Date: Sun, 31 May 2026 14:16:58 +0200 Subject: [PATCH] [3.15] gh-150636: Clarify difference between copy.copy() and the copy() methods (GH-150637) (GH-150665) (cherry picked from commit 1de909b32411fc1c4d4c42b4f8221b86096c6353) Co-authored-by: Serhiy Storchaka Co-authored-by: Pieter Eendebak Co-authored-by: Stan Ulbrych --- Doc/library/copy.rst | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) 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 -- 2.47.3