Sobes.tech
Junior

Ce metode de copiere a obiectelor cunoști?

sobes.tech AI

Răspuns de la AI

Copiere superficială și profundă.

Copierea superficială (Shallow Copy) creează un nou obiect, dar referințele către obiectele imbricate rămân aceleași. Modificările în obiectele imbricate ale obiectului original se vor reflecta și în copie, și invers.

Copierea profundă (Deep Copy) creează o copie complet independentă a obiectului, inclusiv copierea tuturor obiectelor imbricate. Modificările în obiectele imbricate ale originalului nu afectează copia.

Exemple de implementare (Python):

# Copie superficială
import copy

original_list = [1, 2, [3, 4]]
shallow_copy_list = copy.copy(original_list)

# Modificarea unui obiect imbricat în original afectează copia
original_list[2][0] = 99
# shallow_copy_list devine acum [1, 2, [99, 4]]
# Copie profundă
import copy

original_list = [1, 2, [3, 4]]
deep_copy_list = copy.deepcopy(original_list)

# Modificarea unui obiect imbricat în original nu afectează copia
original_list[2][0] = 99
# deep_copy_list rămâne [1, 2, [3, 4]]

Alegerea metodei depinde de structura obiectului și de sarcină. Pentru obiecte simple fără referințe imbricate, copia superficială este suficientă. Pentru obiecte cu structură complexă sau când este necesară o independență totală a copiei față de original, se utilizează copia profundă.