Back to questions
Middle
7
Какие есть механизмы копирования объектов в Python?
Companies where asked
Octo
Answer from AI
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)), но они обычно делают поверхностные копии.