Alias e Cloni

Dal momento che le variabili si riferiscono a oggetti, se assegniamo una variabile a un’altra, entrambe le variabili si riferiscono allo stesso oggetto:




(listalias1)

In questo caso, il diagramma dei riferimenti è il seguente:

State snapshot for multiple references (aliases) to a list

Dal momento che la stessa lista ha due nomi diversi, a e b, diciamo che entrambi sono alias. I cambiamenti fatti con un alias hanno effetto anche sull’altro. Nell’esempio sotto, possiamo vedere che a e b si riferiscono alla stessa lista dopo l’esecuzione dell’istruzione di assegnamento b = a.

(chp09_is3)

Clonare Liste

Se vogliamo modificare una lista e mantenere anche una copia dell’originale, dobbiamo fare una copia della lista stessa, non accontentandosi del solo riferimento. Questo processo è chiamato clonazione.

Il modo più semplice per clonare una lista è usare l’operatore di slice.

Facendo uno slice di a crea una nuova lista.

(chp09_is4)

Adesso siamo liberi di cambiare b senza preoccuparci di a. Infatti a e b sono oggetti lista completamente diversi.

Next Section - Ripetizioni e Riferimenti