Sobes.tech
Junior

Quali metodi di copia degli oggetti conosci?

sobes.tech AI

Risposta dell'AI

Copia superficiale e profonda.

La copia superficiale (Shallow Copy) crea un nuovo oggetto, ma i riferimenti agli oggetti annidati rimangono gli stessi. Le modifiche agli oggetti annidati dell'originale si rifletteranno anche nella copia, e viceversa.

La copia profonda (Deep Copy) crea una copia completamente indipendente dell'oggetto, inclusa la copia di tutti gli oggetti annidati. Le modifiche agli oggetti annidati dell'originale non influenzano la copia.

Esempi di implementazione (Python):

# Copia superficiale
import copy

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

# Modificare un oggetto annidato nell'originale influisce sulla copia
original_list[2][0] = 99
# shallow_copy_list ora è [1, 2, [99, 4]]
# Copia profonda
import copy

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

# Modificare un oggetto annidato nell'originale non influisce sulla copia
original_list[2][0] = 99
# deep_copy_list rimane [1, 2, [3, 4]]

La scelta del metodo dipende dalla struttura dell'oggetto e dal compito. Per oggetti semplici senza riferimenti annidati, la copia superficiale è sufficiente. Per oggetti con strutture complesse o quando si necessita di una copia completamente indipendente dall'originale, si utilizza la copia profonda.