English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Python

Контроль потоков в Python

Функции Python

Типы данных Python

Файловые операции в Python

Объекты и классы в Python

Даты и время в Python

Продвинутые знания Python

Руководство по Python

Метод использования getattr() в Python и примеры

Внутренние функции Python

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

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

getattr(object, name[, default])

Указанная синтаксис эквивалентен:

object.name

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

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

  • object - Объект, для которого нужно вернуть значение ионимизированного атрибута

  • name - Строка, содержащая имя атрибута

  • default (по желанию) - Значение, возвращаемое при отсутствии ионимизированного атрибута

Возврат значения getattr()

Метод getattr() возвращает:

  • Значение ионимизированного атрибута объекта

  • default, если ионимизированный атрибут не найден

  • Исключение AttributeError, если ионимизированный атрибут не найден и не определено значение по умолчанию

Пример 1: как работает getattr() в Python?

class Person:
    age = 23
    name = "Adam"
person = Person()
print('Возраст:', getattr(person, "age"))
print('Возраст:', person.age)

При выполнении этого программы, вывод будет:

Возраст: 23
Возраст: 23

Пример 2: getattr() при поиске ионимизированного атрибута

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.

Внутренние функции Python