La funzione delattr di python
La funzione delattr di python mi consente di cancellare un attributo dall'esterno della classe.
La sintassi
delattr(classe, attributo)
La funzione ha due argomenti:
- Il nome della classe che contiene l'attributo.
- Il nome dell'attributo da rimuovere
Un esempio pratico
Creo uno script con una classe (Persone).
All'interno della classe definisco un attributo (nome).
- class Persone():
- nome = 'Andrea'
- delattr(Persone, 'nome')
- print(getattr(Persone, 'nome'))
Nella riga 3 cancello l'attributo 'nome' nella classe Persone con la funzione delattr().
Poi nella riga 4 tento di leggere e visualizzare il contenuto dell'attributo 'nome' tramite la funzione getattr().
Lo script però va in errore perché l'attributo 'nome' ora non esiste più dentro la classe.
Traceback (most recent call last):
File, line 13, in <module>
print(getattr(Persone, 'nome'))
AttributeError: type object 'Persone' has no attribute 'nome'
Una volta eliminato l'attributo dalla classe, non può essere più invocato dallo script.
E così via.