La funzione hasattr di python
Nel linguaggio python la funzione hasattr() mi permette di cercare e verificare se una classe ha un attributo con un particolare nome.
La sintassi
hasattr(nomeclasse, nomeattributo)
Al primo argomento va indicato il nome della classe e al secondo la stringa del nome dell'attributo da trovare.
La funzione restituisce in output un valore booleano:
- True se la classe contiene un attributo con il nome indicato.
- False se l'attributo cercato non esiste nella classe
Un esempio pratico
Creo la classe Prova con un metodo prova.
- class Prova:
- def metodo1():
- print('ciao')
- return self._name
Poi uso la funzione hasattr per verificare se la classe Prova contiene l'attributo 'metodo1'
hasattr(Prova,'metodo1')
La funzione restituisce il risultato True perché l'attributo 'metodo1' esiste nella classe Prova
True
Ora utilizzo la stessa funzione per verificare se contiene anche l'attributo 'metodo2'.
hasattr(Prova,'metodo2')
La funzione restituisce il valore False perché l'attributo 'metodo2' non c'è nella classe.
False
In questo modo posso appurare se un determinato attributo esiste nella classe, prima di usarlo.
E così via.