Python getattr ()

Метод getattr () возвращает значение названного атрибута объекта. Если не найден, он возвращает значение по умолчанию, предоставленное функции.

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

 getattr (объект, имя (, по умолчанию))

Вышеупомянутый синтаксис эквивалентен:

 object.name

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

getattr() метод принимает несколько параметров:

  • объект - объект, чье значение именованного атрибута должно быть возвращено
  • 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' 

Именованный атрибут sex отсутствует в классе Person. Итак, при вызове getattr()метода со значением по умолчанию Maleон возвращает Male.

Но, если мы не предоставляем никакого значения по умолчанию, когда именованный атрибут sex не найден, возникает AttributeErrorпредположение, что объект не имеет атрибута sex.

Интересные статьи...