Junior — Middle
Pode explicar a diferença entre uma cópia profunda e uma cópia superficial de um objeto?
sobes.tech IA
Resposta da IA
A cópia superficial (shallow copy) cria um novo objeto, mas os objetos aninhados dentro dele não são copiados, apenas referenciados aos mesmos objetos do original. Isso significa que alterações nos objetos aninhados também se refletirão na cópia.
A cópia profunda (deep copy) cria uma cópia completamente independente do objeto, juntamente com todos os objetos aninhados, recursivamente. Alterações na cópia não afetam o original.
Exemplo em Python:
import copy
original = [1, [2, 3]]
shallow = copy.copy(original)
deep = copy.deepcopy(original)
shallow[1][0] = 'changed'
print(original) # [1, ['changed', 3]] — o original também mudou
deep[1][0] = 'deep_changed'
print(original) # [1, ['changed', 3]] — o original não mudou