ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

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

Как установить Python 3 на Ubuntu 16.04 LTS

Огромное количество встроенных модулей, функций и операторов 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.

Exit mobile version