Sobes.tech
Junior

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.