La funzione setattr di python
Nel linguaggio python la funzione setattr mi permette di modificare un attributo di una classe dall'esterno.
La sintassi
setattr(oggetto, attributo, valore)
Un esempio pratico
In questo script sviluppo una semplice classe Persone() con un attributo interno ( nome ).
- class Persone():
- nome = 'Andrea'
- print(getattr(Persone, 'nome'))
- setattr(Persone, 'nome', 'Ilaria')
- print(getattr(Persone, 'nome'))
All'attributo nome è assegnato inizialmente la stringa 'Andrea'.
La riga 3 legge e stampa il valore dell'attributo 'nome' tramite la funzione getattr().
Andrea
Nella riga 4 modifico il valore dell'attributo 'nome' assegnandogli la stringa 'Ilaria' tramite la funzione setattr().
La riga 5 legge e stampa il valore corrente dell'attributo 'nome' tramite la funzione getattr().
Ilaria
Ora nella classe Persone() l'attributo 'name' contiene la nuova informazione.
Non è più quella iniziale.
E così via.