Функция getattr() в Python

Огромное количество встроенных модулей, функций и операторов Python помогает программистам выполнять различные задачи. Функция getattr() — это встроенная функция Python, которая позволяет программистам получать доступ к значению атрибута объекта. Если значение не найдено, функция getattar() возвращает значение по умолчанию. По этой причине функция getattr() используется в основном для доступа к значениям атрибутов объектов. Эта статья предоставит подробное объяснение функции getattr() с некоторыми примерами.

 

Синтаксис

Прежде чем перейти к реализации функции getattr(), сначала обсудим ее синтаксис. Синтаксис функции getattr() следующий:

getattr(object_name,attribute_name,defalut_value)

 

Функция getattr() принимает в качестве аргумента три параметра:

  • object_name: имя объекта, к атрибуту которого нам нужно получить доступ.
  • attribute_name: имя атрибута, к которому нам нужно получить доступ.
  • default_value: значение по умолчанию, которое возвращается, если атрибут не найден.

 

Если атрибут 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.



2020-12-26T18:43:33
Python