English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Метод getattr() возвращает значение именованного свойства объекта. Если его не найдено, он вернет значение по умолчанию, предоставленное функции.
Синтаксис метода getattr():
getattr(object, name[, default])
Указанная синтаксис эквивалентен:
object.name
Метод getattr() принимает несколько параметров:
object - Объект, для которого нужно вернуть значение ионимизированного атрибута
name - Строка, содержащая имя атрибута
default (по желанию) - Значение, возвращаемое при отсутствии ионимизированного атрибута
Метод getattr() возвращает:
Значение ионимизированного атрибута объекта
default, если ионимизированный атрибут не найден
Исключение AttributeError, если ионимизированный атрибут не найден и не определено значение по умолчанию
class Person: age = 23 name = "Adam" person = Person() print('Возраст:', getattr(person, "age")) print('Возраст:', person.age)
При выполнении этого программы, вывод будет:
Возраст: 23 Возраст: 23
class Person: age = 23 name = "Adam" person = Person() # Когда предоставляется значение по умолчанию print('Пол:', getattr(person, 'sex', 'Male')) # Когда не предоставляется значение по умолчанию print('Пол:', getattr(person, 'sex'))
При выполнении этого программы, вывод будет:
Пол: Male AttributeError: у объекта 'Person' нет атрибута 'sex'
Ионимизированный атрибут sex не существует в классе Person. Поэтому при вызове метода getattr() с значением по умолчанию Male он вернет Male.
Но если мы не предоставляем никакого значения по умолчанию, то при поиске ионимизированного атрибута sex будет выведено исключение AttributeError, что означает, что у объекта нет атрибута sex.