Python setattr()
La funzione setattr() imposta il valore dell'attributo di un oggetto.
La sintassi della funzione setattr() è:
setattr(oggetto, nome, valore)
Se si vuole ottenere l'attributo di un oggetto, usare getattr().
La funzione setattr() prende tre parametri:
- oggetto: oggetto il cui attributo deve essere impostato.
- nome: nome dell'attributo.
- valore: il valore da assegnare all'attributo.
Il metodo setattr() non restituisce nulla, rende None.
class Persona:
nome = 'Alessio'
p = Persona()
print ('Prima della modifica:', p.nome)
# impostiamo nome a 'Mario'
setattr(p, 'nome', 'Mario')
print ('Dopo la modifica:', p.nome)
Output del codice
Prima della modifica: Alessio
Dopo la modifica: Mario
Se l'attributo non viene trovato, setattr() crea un nuovo attributo e gli assegna un valore. Tuttavia, questo è possibile solo se l'oggetto implementa il metodo __dict__().
È possibile controllare tutti gli attributi di un oggetto utilizzando la funzione dir().
class Persona:
nome = 'Alessio'
p = Persona()
# impostiamo l'attributo nome a Mario
setattr(p, 'nome', 'Mario')
print('Il nome è:', p.nome)
# impostiamo un attributo non presente in Persona
setattr(p, 'anni', 23)
print('L\'età è:', p.anni)
Output del codice
Il nome è: Mario
L'età è: 23