Назад к вопросам
Middle
6
Какие есть механизмы копирования объектов в Python?
Компании, где спрашивали
Octo
Ответ от нейросети
sobes.tech AI
В Python есть два основных механизма копирования объектов:
-
Поверхностное копирование (shallow copy) — создаёт новый объект, но вложенные объекты внутри него остаются ссылками на оригинал. Используется функция
copy.copy(). -
Глубокое копирование (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)), но они обычно делают поверхностные копии.