Back to questions
Junior — Middle
74
Могли бы вы объяснить, что подразумевается под поверхностной копией объекта и чем она отличается от глубокой копии?
Answer from AI
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 создал новый список