
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.