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.

    1. class Prova:
    2. def metodo1():
    3. print('ciao')
    4. 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.

     


     

    Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

    FacebookTwitterLinkedinLinkedin
    knowledge base

    Classi Python