getattr() Python

Nel nostro tutorial precedente abbiamo imparato a conoscere il comando di sistema Python. In questo tutorial discuteremo della funzione Python getattr().

Funzione Python getattr()

La funzione getattr() di Python viene utilizzata per ottenere il valore di un attributo di un oggetto e se non viene trovato alcun attributo di quell’oggetto, viene restituito un valore predefinito. Fondamentalmente, restituire il valore predefinito è la ragione principale per cui potresti aver bisogno di utilizzare la funzione Python getattr(). Quindi, prima di iniziare il tutorial, vediamo la sintassi di base della funzione getattr() di Python.

getattr(object_name, attribute_name[, default_value])

Esempio di Python getattr()

In questa sezione, impareremo come accedere ai valori degli attributi di un oggetto utilizzando la funzione getattr(). Supponiamo che stiamo scrivendo una classe chiamata Studente. Gli attributi di base della classe Studente sono student_id e student_name. Ora creeremo un oggetto della classe Studente e accederemo al suo attributo.

class Student:
    student_id=""
    student_name=""

    # costruttore iniziale per impostare i valori
    def __init__(self):
        self.student_id = "101"
        self.student_name = "Adam Lam"

student = Student()
# ottenere i valori degli attributi utilizzando la funzione getattr()
print('\ngetattr : name of the student is =', getattr(student, "student_name"))

# ma potresti accedere a questo in questo modo
print('traditional: name of the student is =', student.student_name)

Ecco come sarà l’output:

Valore predefinito di getattr() di Python

In questa sezione, utilizzeremo l’opzione di valore predefinito di getattr() di Python. Se si desidera accedere a un attributo che non appartiene all’oggetto, è possibile utilizzare l’opzione di valore predefinito di getattr(). Ad esempio, se l’attributo student_cgpa non è presente per lo studente, verrà mostrato un valore predefinito. Nell’esempio seguente vedremo un esempio di valore predefinito. Impareremo anche cosa succede se l’attributo non è presente e non stiamo utilizzando l’opzione di valore predefinito.

class Student:
    student_id=""
    student_name=""

    # costruttore iniziale per impostare i valori
    def __init__(self):
        self.student_id = "101"
        self.student_name = "Adam Lam"

student = Student()
# utilizzo dell'opzione di valore predefinito
print('Using default value : Cgpa of the student is =', getattr(student, "student_cgpa", 3.00))
# senza utilizzare il valore predefinito
try:
    print('Without default value : Cgpa of the student is =', getattr(student, "student_cgpa"))
except AttributeError:
    print("Attribute is not found :(")

Dopo aver eseguito il codice, otterrai un output simile a questo

Using default value : Cgpa of the student is = 3.0
Attribute is not found :(

Nota che viene sollevato un AttributeError quando non viene fornito il valore predefinito durante la chiamata alla funzione getattr().

Motivo per cui utilizzare la funzione getattr() di Python

Il motivo principale per utilizzare la funzione getattr() di Python è che possiamo ottenere il valore utilizzando il nome dell’attributo come stringa. Quindi è possibile inserire manualmente il nome dell’attributo nel programma dalla console. Inoltre, se un attributo non viene trovato, è possibile impostare un valore predefinito, il che ci consente di completare alcuni dei nostri dati incompleti. Inoltre, se la classe Student è ancora in fase di sviluppo, possiamo utilizzare la funzione getattr() per completare il resto del codice. Una volta che la classe Student avrà questo attributo, lo prenderà automaticamente e non utilizzerà il valore predefinito. Quindi, questo è tutto sulla funzione getattr() di Python. Se hai qualche domanda in merito, utilizza la sezione commenti qui sotto. Riferimento: Documentazione ufficiale

Source:
https://www.digitalocean.com/community/tutorials/python-getattr