Sobes.tech
Назад к вопросам
Junior — Middle
73

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

Ответ от нейросети

sobes.tech AI

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

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

В Python для поверхностного копирования можно использовать функцию copy.copy(), а для глубокой — copy.deepcopy() из модуля copy.

Пример:

import copy

original = {'a': [1, 2, 3], 'b': 4}
shallow = copy.copy(original)
deep = copy.deepcopy(original)

shallow['a'].append(4)
print(original['a'])  # [1, 2, 3, 4] — изменилось, так как список общий

deep['a'].append(5)
print(original['a'])  # [1, 2, 3, 4] — не изменилось, так как deep copy создал новый список