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