Функція getattr() повертає значення іменованого атрибута об’єкта. Якщо його не знайдено, то повертається значення за замовчуванням, надане функцією.
Наприклад:
|
1 2 3 4 5 6 7 8 9 10 11 |
class Student: marks = 88 name = 'Sheeran' person = Student() name = getattr(person, 'name') print(name) marks = getattr(person, 'marks') print(marks) |
Результат:
Sheeran
88
Синтаксис функції getattr()
|
1 |
getattr(object, name[, default]) |
Даний синтаксис еквівалентний:
|
1 |
object.name |
Параметри функції getattr()
Функція getattr() приймає декілька параметрів:
object — значення іменованого атрибута, яке має бути повернуто;
name — рядок, який містить ім’я атрибута;
default (не обов’язково) — значення, яке повертається, коли іменований атрибут не знайдено.
Значення, яке повертає функція getattr()
Функція getattr() повертає:
значення іменованого атрибута даного об’єкта;
аргумент default, якщо атрибут не знайдено;
помилку AttributeError, якщо атрибут не знайдено і параметр default не визначено.
Приклад №1: Як працює функція getattr() в Python?
|
1 2 3 4 5 6 7 |
class Person: age = 23 name = "Adam" person = Person() print('The age is:', getattr(person, "age")) print('The age is:', person.age) |
Результат:
The age is: 23
The age is: 23
Приклад №2: Функція getattr(), коли атрибут не знайдено
|
1 2 3 4 5 6 7 8 9 10 11 |
class Person: age = 23 name = "Adam" person = Person() # Коли значення за замовчуванням надано print('The sex is:', getattr(person, 'sex', 'Male')) # Коли значення за замовчуванням не надано print('The sex is:', getattr(person, 'sex')) |
Результат:
The sex is: Male
AttributeError: 'Person' object has no attribute 'sex'
Тут атрибут sex не представлений у класі Person. Тому під час виклику функції getattr() зі значенням Male вона повертає Male.
Але якщо ми не надамо жодного значення за замовчуванням, коли іменований атрибут sex не знайдено, він викличе помилку AttributeError, яка повідомить, що об’єкт не має атрибута sex.

(6 оцінок, середня: 4,50 з 5)