Огромное количество встроенных модулей, функций и операторов Python помогает программистам выполнять различные задачи. Функция getattr() – это встроенная функция Python, которая позволяет программистам получать доступ к значению атрибута объекта. Если значение не найдено, функция getattar() возвращает значение по умолчанию. По этой причине функция getattr() используется в основном для доступа к значениям атрибутов объектов. Эта статья предоставит подробное объяснение функции getattr() с некоторыми примерами.
Прежде чем перейти к реализации функции getattr(), сначала обсудим ее синтаксис. Синтаксис функции getattr() следующий:
getattr(object_name,attribute_name,defalut_value)
Функция getattr() принимает в качестве аргумента три параметра:
Если атрибут name не найден и мы не определяем default_value, функция getattar() вызывает исключение AttributeError.
Теперь мы рассмотрим несколько примеров с использованием функции getattr(). Мы создали студенческий класс и определили некоторые атрибуты для этого класса. Мы получаем доступ к этим атрибутам с помощью функции getattar().
# создание класса студент class Student: #определение атрибута name name = "AndreyEx" #определение атрибута email email = "AndreyEx@example.ru" # Создание объекта класса ученика std_obj = Student() # теперь std_obj - наш объект # доступ к атрибуту имени print("Значение атрибута имени:", getattr(std_obj, 'name')) # доступ к атрибуту электронной почты print("Значение атрибута электронной почты:", getattr (std_obj, 'email'))
Вывод
Функция getattr() успешно вернула значения атрибутов.
Теперь мы попытаемся получить доступ к атрибуту, который не определен. Мы определим значение по умолчанию для этого отсутствующего атрибута.
# создание класса Student class Student: # определение атрибута имени name = "AndreyEx" # определение атрибута электронной почты email = "AndreyEx@example.ru" # Создание объекта класса Student std_obj = Student() # Теперь std_obj - наш объект # доступ к атрибуту age print("Возраст:", getattr(std_obj, 'age', ' Более 20'))
Определенное значение – “Больше 20”.
Вывод
В случае отсутствия атрибута “age” печатается определенное значение.
Если значение не определено, функция getattr() вызовет исключение AttributeError. Давайте посмотрим на пример этого.
# создание класса Student class Student: # определение атрибута name name = "AndreyEx" # определение атрибута email email = "AndreyEx@example.ru" std_obj = Student() # теперь std_obj - наш объект # доступ к атрибуту age print("Возраст:", getattr(std_obj, 'age'))
Вы также можете использовать функцию getattr() с namedtuple для доступа к значениям. Namedtuple – это контейнер типа словаря, но вы можете получить доступ к его значениям с помощью функции getattar(). Namedtuple – это класс модуля коллекций. Давайте реализуем именованный кортеж и получим доступ к значениям с помощью функции getattr(). Мы создаем именованный набор для student.
# импорт модуля collections import collections # создание именованного кортежа для ученика # name и age - это ключи Student = collections.namedtuple('Student', [ 'name', 'age' ]) # создание нового учителя и добавление значений std = Student("AndreyEx", 21) print("Имя:", getattr(std, "name")) print("Возраст:", getattr(std, "age"))
Функция getattar() – это встроенная функция в Python, которая возвращает значение атрибута объекта. Основная причина использования функции getattr() заключается в том, что она упрощает доступ к значению атрибута, используя имя атрибута. Имя атрибута определяется как строка, а значение мы получаем с помощью функции getattar(). Также можно определить значение для отсутствующего атрибута. Надеюсь, после прочтения этой статьи вы узнали больше о том, как использовать функцию getattar() в Python.