В нашем предыдущем уроке мы узнали о команде системы Python. В этом уроке мы обсудим функцию Python getattr().
Функция Python getattr()
Функция getattr() используется для получения значения атрибута объекта, и если атрибут объекта не найден, возвращается значение по умолчанию. В основном, возвращение значения по умолчанию – это основная причина, по которой может понадобиться использовать функцию Python getattr(). Так что, прежде чем начать урок, давайте посмотрим на основный синтаксис функции getattr() в Python.
getattr(object_name, attribute_name[, default_value])
Пример использования getattr() в Python
В этом разделе мы узнаем, как получить доступ к значениям атрибута объекта с использованием функции getattr()
. Предположим, у нас есть класс с именем Student
. Основными атрибутами класса Student являются student_id
и student_name
. Теперь мы создадим объект класса Student и получим доступ к его атрибуту.
class Student:
student_id=""
student_name=""
# начальный конструктор для установки значений
def __init__(self):
self.student_id = "101"
self.student_name = "Adam Lam"
student = Student()
# получение значений атрибута с использованием функции getattr()
print('\ngetattr : name of the student is =', getattr(student, "student_name"))
# но вы можете получить к ним доступ таким образом
print('traditional: name of the student is =', student.student_name)
Python getattr() значение по умолчанию
В этом разделе мы будем использовать опцию значения по умолчанию для python getattr(). Если вы хотите получить доступ к любому атрибуту, который не принадлежит объекту, то вы можете использовать опцию значения по умолчанию getattr(). Например, если атрибут student_cgpa
отсутствует у студента, то будет показано значение по умолчанию. В следующем примере мы увидим пример значения по умолчанию. Мы также узнаем, что происходит, если атрибут отсутствует и мы не используем опцию значения по умолчанию.
class Student:
student_id=""
student_name=""
# инициализация конструктора для установки значений
def __init__(self):
self.student_id = "101"
self.student_name = "Adam Lam"
student = Student()
# использование опции значения по умолчанию
print('Using default value : Cgpa of the student is =', getattr(student, "student_cgpa", 3.00))
# без использования значения по умолчанию
try:
print('Without default value : Cgpa of the student is =', getattr(student, "student_cgpa"))
except AttributeError:
print("Attribute is not found :(")
Так что после выполнения кода вы получите вывод следующего вида
Using default value : Cgpa of the student is = 3.0
Attribute is not found :(
Обратите внимание, что AttributeError
возникает, когда при вызове функции getattr() не указано значение по умолчанию.
Причина использования функции Python getattr()
Основная причина использования python getattr() заключается в том, что мы можем получить значение, используя имя атрибута как строку. Таким образом, вы можете вручную вводить имя атрибута в свою программу из консоли. Снова, если атрибут не найден, вы можете установить некоторое значение по умолчанию, что позволяет нам завершить некоторые из наших неполных данных. Кроме того, если ваш класс Student находится в стадии разработки, то мы можем использовать функцию getattr() для завершения другого кода. Как только у класса Student будет этот атрибут, он автоматически его подхватит и не будет использовать значение по умолчанию. Вот и все, что касается функции python getattr(). Если у вас есть какие-либо вопросы по этому поводу, пожалуйста, используйте форму комментариев ниже. Ссылка: Официальная документация
Source:
https://www.digitalocean.com/community/tutorials/python-getattr