Sobes.tech
Back to questions
Middle
7

Какие есть механизмы копирования объектов в Python?

Companies where asked
Octo

Answer from AI

sobes.tech AI

В Python есть два основных механизма копирования объектов:

  1. Поверхностное копирование (shallow copy) — создаёт новый объект, но вложенные объекты внутри него остаются ссылками на оригинал. Используется функция copy.copy().

  2. Глубокое копирование (deep copy) — создаёт новый объект и рекурсивно копирует все вложенные объекты, полностью отделяя копию от оригинала. Используется функция copy.deepcopy().

Пример:

import copy

original = [1, [2, 3], 4]
shallow = copy.copy(original)
deep = copy.deepcopy(original)

original[1][0] = 'changed'

print(shallow)  # [1, ['changed', 3], 4] — вложенный список изменился
print(deep)     # [1, [2, 3], 4] — вложенный список остался прежним

Также для простых объектов можно использовать срезы или конструкторы (например, list(original)), но они обычно делают поверхностные копии.