Голямото разнообразие от вградени модули, функции и изявления на Python помага на програмистите да изпълняват различни задачи. Функцията getattr () е вградена функция на Python, която позволява на програмистите да имат достъп до стойността на атрибута на обект. Ако стойността не е намерена, функцията getattar () връща стойността по подразбиране. Това е причината, поради която функцията getattr () се използва най-вече за достъп до стойностите на атрибутите на обектите. Тази статия ще предостави подробно обяснение на функцията getattr () с някои примери.
Синтаксис
Преди да преминем към изпълнението на функцията getattr (), първо ще обсъдим нейния синтаксис. Синтаксисът на функцията getattr () е както следва:
getattr (име на обект, име на атрибут, дефалт_значение)
Функцията getattr () приема като аргумент три параметъра:
обект_име: Името на обекта, до чийто атрибут трябва да осъществим достъп.
атрибут_име: Името на атрибута, до който трябва да осъществим достъп.
стойност по подразбиране: Стойността по подразбиране, която се връща, когато атрибутът не е намерен.
Ако атрибутът на името не е намерен и не дефинираме default_value, функцията getattar () повдига изключение AttributeError.
Примери
Сега ще разгледаме някои примери с помощта на функцията getattr (). Създадохме студентски клас и дефинирахме някои атрибути за този клас. Имаме достъп до тези атрибути с помощта на функцията getattar ().
#създаване на студентски класклас Студент:
#defining име атрибут
name = "Джон"
#defining атрибут на имейл
имейл = "[имейл защитен]"
# Създаване на обект на студентски клас
std_obj = Студент ()
#now std_obj е нашият обект
#accessing the name attribute
print ("Стойността на атрибута за име е:", getattr (std_obj, 'name'))
#accessing the email attribute
print ("Стойността на атрибута на имейл е:", getattr (std_obj, 'имейл'))
Изход
Функцията getattr () върна стойностите на атрибутите успешно.
Сега ще се опитаме да получим достъп до атрибут, който не е дефиниран. Ще определим стойността по подразбиране за този липсващ атрибут.
#създаване на студентски класклас Студент:
#defining име атрибут
name = "Джон"
#defining атрибут на имейл
имейл = "[имейл защитен]"
# Създаване на обект на студентски клас
std_obj = Студент ()
#now std_obj е нашият обект
#accessing the age attribute
print ("Възрастта е:", getattr (std_obj, 'age', 'Above 20'))
Определената стойност е „Над 20“.
Изход
В случай на липсващ атрибут „възраст“, дефинираната стойност се отпечатва.
Ако стойността не е дефинирана, функцията getattr () ще изведе изключение 'AttributeError'. Нека да видим пример за това.
#създаване на студентски класклас Студент:
#defining име атрибут
name = "Джон"
#defining атрибут на имейл
имейл = "[имейл защитен]"
# Създаване на обект на студентски клас
std_obj = Студент ()
#now std_obj е нашият обект
#accessing the age attribute
print ("Възрастта е:", getattr (std_obj, 'age'))
Изход
Можете също да използвате функцията getattr () с namedtuple за достъп до стойностите. Namedtuple е контейнер от тип речник, но можете да получите достъп до неговите стойности с помощта на функцията getattar (). Namedtuple е клас колекционен модул. Нека реализираме namedtuple и достъп до стойностите, използвайки функцията getattr (). Създаваме имена за ученика.
#importing колекционен модулимпортиране на колекции
#creating a namedtuple for a student
#name и възраст са ключовете
Студент = колекции.namedtuple ('Студент', ['име', 'възраст'])
#creating нов учител и добавяне на стойностите
std = Студент ("Йоан", 21)
print ("Името е:", getattr (std, "name"))
print ("Възрастта е:", getattr (std, "age"))
Изход
Заключение
Функцията getattar () е вградена функция в Python, която връща стойността на атрибут на обект. Основната причина да се използва функцията getattr () е, че улеснява достъпа до стойността на атрибут, като се използва името на атрибута. Името на атрибута се дефинира като низ и получаваме стойността с помощта на функцията getattar (). Стойност може да бъде дефинирана и за липсващия атрибут. След като прочетете тази статия, надяваме се, научихте повече за това как да използвате функцията Python getattar ().