Metoda getattr () zwraca wartość podanego atrybutu obiektu. Jeśli nie zostanie znaleziony, zwraca wartość domyślną dostarczoną do funkcji.
Składnia getattr()
metody to:
getattr (obiekt, nazwa (, domyślnie))
Powyższa składnia jest równoważna z:
nazwa.obiektu
getattr () Parametry
getattr()
metoda przyjmuje wiele parametrów:
- obiekt - obiekt, którego nazwana wartość atrybutu ma zostać zwrócona
- name - ciąg zawierający nazwę atrybutu
- default (opcjonalny) - wartość, która jest zwracana, gdy nazwany atrybut nie zostanie znaleziony
Wartość zwracana z getattr ()
getattr()
metoda zwraca:
- wartość nazwanego atrybutu danego obiektu
default
, jeśli nie zostanie znaleziony nazwany atrybutAttributeError
wyjątek, jeśli nazwany atrybut nie został znaleziony idefault
nie jest zdefiniowany
Przykład 1: Jak działa getattr () w Pythonie?
class Person: age = 23 name = "Adam" person = Person() print('The age is:', getattr(person, "age")) print('The age is:', person.age)
Wynik
Wiek: 23 lata: 23 lata
Przykład 2: getattr (), gdy nie znaleziono nazwanego atrybutu
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'))
Wynik
Płeć to: Mężczyzna AttributeError: Obiekt „Osoba” nie ma atrybutu „płeć”
Nazwany atrybut płeć nie występuje w klasie Osoba. Tak więc, wywołując getattr()
metodę z wartością domyślną Male
, zwraca Male.
Ale jeśli nie podamy żadnej wartości domyślnej, gdy nazwany atrybut sex nie zostanie znaleziony, pojawia się AttributeError
powiedzenie, że obiekt nie ma atrybutu płci.