Метод 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.