
L'istruzione del in Python
L'istruzione del in Python ti permette di eliminare dei riferimenti a oggetti.
del oggetto
Ad esempio, puoi utilizzarla per eliminare variabili, gli elementi di una lista, le chiavi in un dizionario, gli attributi di un oggetto, e così via.
Ecco alcuni esempi pratici.
Eliminare una variabile
Crea una variabile chiamata "x", assegnagli il valore 10 e stampa il suo contenuto.
x=10
print(x)
Python visualizza in output il contenuto della variabile ossia 10
10
Ora utilizza l'istruzione del per eliminare la variabile
del x
Poi utilizza la funzione print() per visualizzare il contenuto della variabile
print(x)
In questo caso Python genera un errore perché x non esiste più
Traceback (most recent call last):
File "/home/main.py", line 1, in <module>
print(x)
NameError: name 'x' is not defined
Ricorda che l'istruzione "del" non elimina l'oggetto stesso, ma solo il riferimento all'oggetto.
Quindi, se ci sono altri riferimenti all'oggetto, l'oggetto rimarrà in memoria.
Ad esempio, crea due etichette "x" e "y" collegate allo stesso oggetto: il valore 10.
Poi cancella l'etichetta "x" tramite l'istruzione del.
x=y=10
del x
print(y)
In questo caso Python restituisce 10 perché l'istruzione del elimina il riferimento dell'etichetta "x" all'oggetto 10.
L'oggetto 10 resta però esistente ed è ancora raggiungibile tramite l'etichetta "y".
Eliminare un elemento da una lista
Puoi usare l'istruzione del anche per eliminare un elemento da una lista.
Ad esempio, crea una lista nella variabile "lista"
lista = [1, 2, 3, 4, 5]
La lista è composta da cinque elementi: 1, 2, 3, 4, 5.
Ora cancella il secondo elemento della lista, quello con indice 1, tramite l'istruzione del.
del lista[1]
Poi stampa il contenuto della lista
print(lista)
Adesso la lista è composta da quattro elementi.
[1, 3, 4, 5]
Eliminare una chiave da un dizionario
Allo stesso modo puoi usare l'istruzione del per eliminare una chiave da un dizionario.
Ad esempio, crea un dizionario nella variabile "dizionario"
dizionario = {'a': 1, 'b': 2, 'c': 3}
Il dizionario ha tre chiavi associate a tre valori.
Ora cancella la chiave "b" usando l'istruzione del
del dizionario['b']
Poi stampa il contenuto del dizionario
print(dizionario)
Adesso il dizionario è composto da due sole chiavi.
{'a': 1, 'c': 3}
La chiave "b" è stata cancellata.
Cancellare una classe o gli attributi di una classe
L'istruzione del può essere utilizzata anche per eliminare una classe.
Ad esempio, definisci una classe e crea delle istanze.
class Example:
class_var = "Questo è un attributo di classe"
def __init__(self, instance_var):
self.instance_var = instance_var
example1 = Example("Istanza 1")
example2 = Example("Istanza 2")
In ogni momento puoi eliminare la classe usando il comando del.
del Example
La particolarità è che l'eliminazione della classe non cancella anche le istanze che continueranno a esistere.
Questo accade perché le istanze effettuano una copia del namespace della classe al momento della creazione.
Gli attributi di istanza, come "instance_var" nell'esempio precedente, restano accessibili anche dopo la cancellazione della classe. Gli attributi di classe, come "class_var", invece vengono eliminati insieme alla classe. Quindi, non potrai più accedervi nemmeno dalle istanze.
Come eliminare gli attributi di istanza
L'istruzione del ti permette anche di cancellare un attributo di istanza in un oggetto.
del example1.instance_var
La cancellazione viene effettuata solo sull'oggetto che hai indicato, in questo caso 'example1'.
Non influisce sugli altri oggetti della stessa classe come 'example2' che continueranno ad avere l'attributo 'instance_var'.