Sobes.tech
Back to questions
Middle
6

Что такое Shallow Copy и Deep Copy?

Companies where asked
Saber Interactive

Answer from AI

sobes.tech AI

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

Deep Copy (глубокое копирование) создает новый объект и рекурсивно копирует все вложенные объекты, так что копия полностью независима от оригинала.

Пример в Python:

import copy

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

shallow[1][0] = 'changed'
print(original)  # [1, ['changed', 3], 4] — изменился вложенный объект

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

Здесь видно, что при shallow copy вложенный список изменяется и в оригинале, а при deep copy — нет.