lettura facile

La funzione vars() di Python

La funzione vars() in Python restituisce gli attributi di un oggetto o le variabili utilizzate nel namespace corrente.

vars()

Tecnicamente la funzione vars() ritorna l'attributo `__dict__` di un oggetto, che è un dizionario contenente gli attributi (o variabili) e i loro corrispondenti valori dell'oggetto.

Se chiami vars() senza argomenti tra le parentesi, si comporta come locals() e restituisce un dizionario con le variabili locali del namespace corrente.

Perché è utile? La funzione vars() è particolarmente utile quando hai bisogno di esaminare o manipolare dinamicamente le proprietà degli oggetti. Per esempio, potresti voler iterare su tutti gli attributi di un oggetto e leggerne i valori o modificarli. Questo può essere molto utile nella programmazione dinamica.

Ecco un esempio pratico.

Immagina di avere una classe chiamata `Automobile`.

Questa classe ha alcuni attributi come `marca`, `modello` e `anno`.

class Automobile:
    def __init__(self, marca, modello, anno):
        self.marca = marca
        self.modello = modello
        self.anno = anno

Ora crea un'istanza della classe Automobile

mia_auto = Automobile("Fiat", "500", 2021)

Se vuoi esaminare gli attributi dell'istanza `mia_auto` puoi utilizzare vars().

print(vars(mia_auto))

Questo stampa qualcosa simile a:

{'marca': 'Fiat', 'modello': '500', 'anno': 2021}

Modificare dinamicamente gli attributi

La funzione vars() può anche essere utilizzata per modificare dinamicamente gli attributi di un oggetto.

Ad esempio, prendi l'oggetto `mia_auto`:

attributi_auto = vars(mia_auto)

Poi modifica l'anno

attributi_auto['anno'] = 2024

Se adesso interroghi l'attributo dell'oggetto, Python stampa il nuovo valore

print(mia_auto.anno)

2024

In conclusione, vars() è uno strumento potente per l'ispezione e la manipolazione degli oggetti in Python.

Ti apre una finestra sugli aspetti interni degli oggetti che, usata saggiamente, può aiutarti a scrivere codice più dinamico e flessibile.

È importante però notare che la funzione vars() funziona solo con oggetti che hanno un attributo `__dict__`, che sono la maggior parte degli oggetti definiti dall'utente.

Tuttavia, non tutti gli oggetti Python hanno un attributo `__dict__`.

Per esempio, se provi a digitare vars(42) sul terminale di Python, otterrai un errore perché un intero non ha attributi che puoi esaminare o modificare in questo modo.




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




FacebookTwitterLinkedinLinkedin