Junior — Middle
Explica ce este copierea superficială a obiectelor în Python și cum diferă de copierea profundă.
sobes.tech AI
Răspuns de la AI
Copierea superficială (shallow copy) în Python creează un nou obiect, dar obiectele imbricate din interiorul său nu sunt copiate, ci doar referințele către ele. Adică, dacă în interiorul obiectului există structuri mutabile imbricate (de exemplu, liste, dicționare), acestea vor fi comune între original și copie.
Copierea profundă (deep copy) creează un nou obiect și copiază recursiv toate obiectele imbricate, creând o copie complet independentă.
Exemplu:
import copy
original = [1, [2, 3]]
shallow = copy.copy(original)
deep = copy.deepcopy(original)
shallow[1].append(4)
print(original) # Va afișa: [1, [2, 3, 4]] — lista imbricată s-a schimbat și în original
print(deep) # Va afișa: [1, [2, 3]] — copia profundă nu s-a schimbat
Prin urmare, copierea superficială este potrivită atunci când obiectele imbricate nu se schimbă, iar copierea profundă — când este nevoie de independență totală a copiei față de original.