Python getattr ()

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 atrybut
  • AttributeErrorwyjątek, jeśli nazwany atrybut nie został znaleziony i defaultnie 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ę AttributeErrorpowiedzenie, że obiekt nie ma atrybutu płci.

Interesujące artykuły...