Python getattr ()

Метод getattr () повертає значення названого атрибута об'єкта. Якщо його не знайти, він повертає значення за замовчуванням, надане функції.

Синтаксис getattr()методу:

 getattr (об'єкт, ім'я (, за замовчуванням))

Вищезазначений синтаксис еквівалентний:

 object.name

Параметри getattr ()

getattr() метод приймає кілька параметрів:

  • object - об’єкт, значення якого має іменований атрибут
  • name - рядок, що містить ім'я атрибута
  • за замовчуванням (Необов’язково) - значення, яке повертається, коли названий атрибут не знайдений

Повернене значення з getattr ()

getattr() метод повертає:

  • значення іменованого атрибута даного об'єкта
  • default, якщо не знайдено жодного іменованого атрибута
  • AttributeErrorвиняток, якщо іменований атрибут не знайдений і defaultне визначений

Приклад 1: Як працює getattr () у Python?

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

Вихідні дані

 Вік: 23 Вік: 23 роки 

Приклад 2: getattr (), коли іменований атрибут не знайдений

 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'))

Вихідні дані

 Стать така: Чоловічий AttributeError: "Person" об'єкт не має атрибута "sex" 

Названий атрибут статі відсутній у класі Person. Отже, при виклику getattr()методу зі значенням за замовчуванням Maleвін повертає Male.

Але, якщо ми не надаємо жодного значення за замовчуванням, коли названий атрибут sex не знайдений, це піднімає AttributeErrorприказку, що об’єкт не має атрибута sex.

Цікаві статті...