lettura facile

La funzione hasattr() di Python

La funzione hasattr() in Python ti permette di verificare se un oggetto ha un determinato attributo.

hasattr(object, name)

Questa funzione prende due argomenti: l'oggetto e una stringa che specifica il nome dell'attributo che si desidera verificare.

  • object: l'oggetto su cui si desidera effettuare il controllo.
  • name: il nome dell'attributo che si desidera verificare come stringa.

La funzione hasattr() restituisce True se l'attributo esiste sull'oggetto, altrimenti False.

La funzione hasattr() può esserti utile quando lavori con oggetti di cui non conosci completamente la struttura, come oggetti dinamici o quando accedi a attributi che potrebbero non essere presenti su alcuni oggetti a causa di variazioni nella loro implementazione o nella loro inizializzazione. È anche utile per garantire che il codice non generi un'eccezione "AttributeError" tentando di accedere a un attributo inesistente.

Ad esempio, supponi di avere una classe "Auto" con un attributo "marca".

Possiamo utilizzare hasattr() per verificare se un'istanza di questa classe ha l'attributo "marca".

class Auto:
    def __init__(self, marca):
         self.marca = marca

Crea un oggetto "mia_auto" tramite la classe "auto"

mia_auto = Auto("Fiat")

Ora verifica se l'oggetto ha l'attributo "marca" usando la funzione hasattr()

print(hasattr(mia_auto, "marca")) #

La funzione restituisce True perché la classe ha questo attributo.

True

Adesso verifica se l'oggetto "mia_auto" ha un attributo "modello" che non è stato definito nella classe

print(hasattr(mia_auto, "modello"))

La funzione non trova l'attributo che stai cercando e restituisce False

False

In questo modo puoi evitare che Python restituisce l'errore AttributeError quando tenti di accedere a un attributo inesistente.

 




Se qualcosa non ti è chiaro, scrivi la tua domanda nei commenti.




FacebookTwitterLinkedinLinkedin