Python getattr ()

Il metodo getattr () restituisce il valore dell'attributo denominato di un oggetto. Se non viene trovato, restituisce il valore predefinito fornito alla funzione.

La sintassi del getattr()metodo è:

 getattr (oggetto, nome (, predefinito))

La sintassi precedente è equivalente a:

 nome.oggetto

parametri getattr ()

getattr() il metodo accetta più parametri:

  • oggetto - oggetto di cui deve essere restituito il valore dell'attributo denominato
  • nome - stringa che contiene il nome dell'attributo
  • default (Facoltativo) - valore restituito quando l'attributo denominato non viene trovato

Valore restituito da getattr ()

getattr() restituisce il metodo:

  • valore dell'attributo denominato dell'oggetto specificato
  • default, se non viene trovato alcun attributo denominato
  • AttributeErroreccezione, se l'attributo denominato non viene trovato e defaultnon è definito

Esempio 1: come funziona getattr () in Python?

 class Person: age = 23 name = "Adam" person = Person() print('The age is:', getattr(person, "age")) print('The age is:', person.age)

Produzione

 L'età è: 23 L'età è: 23 

Esempio 2: getattr () quando l'attributo denominato non viene trovato

 class Person: age = 23 name = "Adam" person = Person() # when default value is provided print('The sex is:', getattr(person, 'sex', 'Male')) # when no default value is provided print('The sex is:', getattr(person, 'sex'))

Produzione

 Il sesso è: Male AttributeError: l'oggetto "Person" non ha l'attributo "sex" 

L'attributo denominato sesso non è presente nella classe Persona. Quindi, quando si chiama il getattr()metodo con un valore predefinito Male, restituisce Male.

Ma, se non forniamo alcun valore predefinito, quando l'attributo denominato sex non viene trovato, viene generato un AttributeErrordetto che l'oggetto non ha attributo sex.

Articoli interessanti...