Sobes.tech
Junior — Middle
69

Можете объяснить, чем отличается глубокое копирование объекта от поверхностного?

Answer from AI

sobes.tech AI

Поверхностное копирование (shallow copy) создает новый объект, но вложенные объекты внутри него не копируются, а просто ссылаются на те же самые объекты, что и в оригинале. Это значит, что изменения во вложенных объектах отразятся и в копии.

Глубокое копирование (deep copy) создает полностью независимую копию объекта вместе со всеми вложенными объектами, рекурсивно. Изменения в копии не влияют на оригинал.

Пример в Python:

import copy

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

shallow[1][0] = 'changed'
print(original)  # [1, ['changed', 3]] — изменился и оригинал

deep[1][0] = 'deep_changed'
print(original)  # [1, ['changed', 3]] — оригинал не изменился