Sobes.tech
Junior — Middle
104

Wat is het verschil tussen het maken van een volledige kopie van een object en het kopiëren van zijn verwijzingen naar interne objecten?

Bedrijven waar gevraagd werd
Леста

Antwoord van AI

sobes.tech AI

В Python существует два основных способа копирования объектов: поверхностное (shallow copy) и глубокое (deep copy).

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

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

Пример:

import copy

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

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

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