English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Il metodo getattr() restituisce il valore dell'attributo nome dell'oggetto. Se non lo trova, restituisce il valore predefinito fornito alla funzione.
La sintassi del metodo getattr() è:
getattr(object, name[, default])
La seguente sintassi è equivalente:
object.name
Il metodo getattr() accetta più parametri:
object -Oggetto da cui restituire il valore dell'attributo denominato
name -Stringa che contiene il nome dell'attributo
default (opzionale) -Valore restituito quando non si trova un attributo denominato
Il metodo getattr() restituisce:
Valore dell'attributo denominato dell'oggetto dato
default, se non si trova un attributo denominato
Eccezione AttributeError, se non si trova un attributo denominato e non è definito un valore predefinito
class Person: age = 23 name = "Adam" person = Person() print('L'età è:', getattr(person, "age")) print('L'età è:', person.age)
Quando si esegue il programma, l'output è:
L'età è: 23 L'età è: 23
class Person: age = 23 name = "Adam" person = Person() # Quando viene fornito un valore predefinito print('Il sesso è:', getattr(person, 'sex', 'Male')) # Quando non viene fornito alcun valore predefinito print('Il sesso è:', getattr(person, 'sex'))
Quando si esegue il programma, l'output è:
Il sesso è: Male AttributeError: l'oggetto 'Person' non ha l'attributo 'sex'
L'attributo denominato 'sex' non esiste nella classe Person. Pertanto, quando si utilizza il valore predefinito Male chiamando il metodo getattr(), restituisce Male.
Ma, se non forniamo alcun valore predefinito, viene sollevata un'eccezione AttributeError, ovvero l'oggetto non ha l'attributo 'sex'.