Sobes.tech
Junior — Middle
96

Объясните, что такое поверхностное копирование объектов в Python и чем оно отличается от глубокого копирования.

Компании, где спрашивали
Золотое ЯблокоЗолотое Яблоко

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

sobes.tech AI

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

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

Пример:

import copy

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

shallow[1].append(4)
print(original)  # Выведет: [1, [2, 3, 4]] — вложенный список изменился и в оригинале
print(deep)      # Выведет: [1, [2, 3]] — глубокая копия не изменилась

Таким образом, поверхностное копирование подходит, когда вложенные объекты не изменяются, а глубокое — когда нужна полная независимость копии от оригинала.