Que métodos de cópia de objetos conhece?
sobes.tech IA
Resposta da IA
Cópia superficial e profunda.
A cópia superficial (Shallow Copy) cria um novo objeto, mas as referências aos objetos aninhados permanecem as mesmas. As alterações nos objetos aninhados do objeto original refletirão também na cópia, e vice-versa.
A cópia profunda (Deep Copy) cria uma cópia completamente independente do objeto, incluindo a cópia de todos os objetos aninhados. As alterações nos objetos aninhados do original não afetam a cópia.
Exemplos de implementação (Python):
# Cópia superficial
import copy
original_list = [1, 2, [3, 4]]
shallow_copy_list = copy.copy(original_list)
# Alterar um objeto aninhado no original afeta a cópia
original_list[2][0] = 99
# shallow_copy_list agora é [1, 2, [99, 4]]
# Cópia profunda
import copy
original_list = [1, 2, [3, 4]]
deep_copy_list = copy.deepcopy(original_list)
# Alterar um objeto aninhado no original não afeta a cópia
original_list[2][0] = 99
# deep_copy_list continua sendo [1, 2, [3, 4]]
A escolha do método depende da estrutura do objeto e da tarefa. Para objetos simples sem referências aninhadas, a cópia superficial é suficiente. Para objetos com uma estrutura complexa ou quando é necessária uma cópia totalmente independente do original, usa-se a cópia profunda.