Python

Функція Python getattr ()

Функція Python getattr ()

Величезна кількість вбудованих модулів, функцій та операторів Python допомагає програмістам виконувати різні завдання. Функція getattr () - це вбудована в Python функція, яка дозволяє програмістам отримувати доступ до значення атрибута об'єкта. Якщо значення не знайдено, функція getattar () повертає значення за замовчуванням. Це причина, чому функція getattr () використовується здебільшого для доступу до значень атрибутів об’єктів. У цій статті наведено детальне пояснення функції getattr () з деякими прикладами.

Синтаксис

Перш ніж переходити до реалізації функції getattr (), спочатку ми обговоримо її синтаксис. Синтаксис функції getattr () такий:

getattr (ім'я_об'єкта, ім'я_атрибута, значення_захисту)

Функція getattr () приймає в якості аргументу три параметри:
ім'я_об'єкта: Ім'я об'єкта, до атрибута якого нам потрібно отримати доступ.
атрибут_назва: Ім'я атрибута, до якого нам потрібно отримати доступ.
значення за замовчуванням: Значення за замовчуванням, яке повертається, коли атрибут не знайдений.

Якщо атрибут name не знайдено, і ми не визначаємо default_value, функція getattar () викликає виняток AttributeError.

Приклади

Тепер ми розглянемо кілька прикладів за допомогою функції getattr (). Ми створили студентський клас і визначили деякі атрибути для цього класу. Ми отримуємо доступ до цих атрибутів за допомогою функції getattar ().

#створення студентського класу
клас Студент:
#defining атрибут імені
name = "Джон"
#defining атрибут електронної пошти
email = "[електронна пошта захищена]"
# Створення об’єкта студентського класу
std_obj = Студент ()
#now std_obj - наш об'єкт
# доступ до атрибута name
print ("Значення атрибута name:", getattr (std_obj, 'name'))
#accessing the email attribute
print ("Значення атрибута електронної пошти:", getattr (std_obj, 'email'))

Вихідні дані

Функція getattr () успішно повернула значення атрибута.

Тепер ми спробуємо отримати доступ до атрибута, який не визначений. Ми визначимо значення за замовчуванням для цього відсутнього атрибута.

#створення студентського класу
клас Студент:
#defining атрибут імені
name = "Джон"
#defining атрибут електронної пошти
email = "[електронна пошта захищена]"
# Створення об’єкта студентського класу
std_obj = Студент ()
#now std_obj - наш об'єкт
# доступ до атрибута віку
print ("Вік:", getattr (std_obj, 'age', 'Above 20'))

Визначене значення - «Вище 20».

Вихідні дані

У випадку відсутнього атрибута 'age', визначене значення друкується.

Якщо значення не визначено, функція getattr () викличе виняток 'AttributeError'. Побачимо приклад цього.

#створення студентського класу
клас Студент:
#defining атрибут імені
name = "Джон"
#defining атрибут електронної пошти
email = "[електронна пошта захищена]"
# Створення об’єкта студентського класу
std_obj = Студент ()
#now std_obj - наш об'єкт
# доступ до атрибута віку
print ("Вік:", getattr (std_obj, 'вік'))

Вихідні дані

Ви також можете використовувати функцію getattr () з namedtuple для доступу до значень. Namedtuple - це контейнер словникового типу, але ви можете отримати доступ до його значень за допомогою функції getattar (). Namedtuple - це клас модуля колекцій. Давайте реалізуємо namedtuple і отримаємо доступ до значень за допомогою функції getattr (). Ми створюємо для студента іменовану групу.

# імпорт модуля колекцій
імпортувати колекції
#створення іменованого кортежу для студента
# ім'я та вік - це ключові слова
Студент = колекції.namedtuple ('Студент', ['ім'я', 'вік'])
# створення нового викладача та додавання цінностей
std = Студент ("Іван", 21)
print ("Ім'я:", getattr (std, "ім'я"))
print ("Вік:", getattr (std, "вік"))

Вихідні дані

Висновок

Функція getattar () - це вбудована функція в Python, яка повертає значення атрибута об’єкта. Основна причина використання функції getattr () полягає в тому, що вона полегшує доступ до значення атрибута за допомогою імені атрибута. Ім'я атрибута визначається як рядок, і ми отримуємо значення за допомогою функції getattar (). Також можна визначити значення для відсутнього атрибута. Прочитавши цю статтю, сподіваємось, ви дізналися більше про те, як користуватися функцією Python getattar ().

OpenTTD Tutorial
OpenTTD is one of the most popular business simulation games out there. In this game, you need to create a wonderful transportation business. However,...
SuperTuxKart for Linux
SuperTuxKart is a great title designed to bring you the Mario Kart experience free of charge on your Linux system. It is pretty challenging and fun to...
Battle for Wesnoth Tutorial
The Battle for Wesnoth is one of the most popular open source strategy games that you can play at this time. Not only has this game been in developmen...