Široká škála vstavaných modulov, funkcií a príkazov Pythonu pomáha programátorom vykonávať rôzne úlohy. Funkcia getattr () je vstavaná funkcia Pythonu, ktorá umožňuje programátorom získať prístup k hodnote atribútu objektu. Ak sa hodnota nenájde, vráti funkcia getattar () predvolenú hodnotu. To je dôvod, prečo sa funkcia getattr () používa väčšinou na prístup k hodnotám atribútov objektov. Tento článok poskytne podrobné vysvetlenie funkcie getattr () s niekoľkými príkladmi.
Syntax
Pred prechodom na implementáciu funkcie getattr () si najskôr povieme niečo o jej syntaxi. Syntax funkcie getattr () je nasledovná:
getattr (názov_objektu, názov_atribútu, konečná_hodnota)
Funkcia getattr () berie ako argument tri parametre:
názov_objektu: Názov objektu, ku ktorého atribútu musíme získať prístup.
názov_atribútu: Názov atribútu, ku ktorému potrebujeme získať prístup.
predvolená hodnota: Predvolená hodnota, ktorá sa vráti, keď sa atribút nenájde.
Ak sa atribút name nenájde a nedefinujeme default_value, funkcia getattar () vyvolá výnimku AttributeError.
Príklady
Teraz sa pozrieme na niekoľko príkladov pomocou funkcie getattr (). Vytvorili sme triedu študentov a definovali sme niektoré atribúty tejto triedy. K týmto atribútom pristupujeme pomocou funkcie getattar ().
#vytvorenie triedy pre študentovtrieda Študent:
# definovanie atribútu mena
meno = "Ján"
# definovanie atribútu e-mailu
email = "[chránený e-mailom]"
# Vytvorenie objektu triedy študenta
std_obj = Študent ()
# now std_obj je náš objekt
#accessing the name attribute
print ("Hodnota atribútu názvu je:", getattr (std_obj, 'name'))
#accessing the email attribute
print ("Hodnota atribútu e-mailu je:", getattr (std_obj, 'email'))
Výkon
Funkcia getattr () úspešne vrátila hodnoty atribútov.
Teraz sa pokúsime získať prístup k atribútu, ktorý nie je definovaný. Definujeme predvolenú hodnotu pre tento chýbajúci atribút.
#vytvorenie triedy pre študentovtrieda Študent:
# definovanie atribútu mena
meno = "Ján"
# definovanie atribútu e-mailu
email = "[chránený e-mailom]"
# Vytvorenie objektu triedy študenta
std_obj = Študent ()
#now std_obj je náš objekt
#accessing the age attribute
print ("Vek je:", getattr (std_obj, 'age', 'nad 20'))
Definovaná hodnota je „Nad 20“.
Výkon
V prípade chýbajúceho atribútu „age“ sa vytlačí definovaná hodnota.
Ak hodnota nie je definovaná, funkcia getattr () vyvolá výnimku 'AttributeError'. Pozrime sa na príklad.
#vytvorenie triedy pre študentovtrieda Študent:
# definovanie atribútu mena
meno = "Ján"
# definovanie atribútu e-mailu
email = "[chránený e-mailom]"
# Vytvorenie objektu triedy študenta
std_obj = Študent ()
# now std_obj je náš objekt
#accessing the age attribute
print ("Vek je:", getattr (std_obj, 'vek'))
Výkon
Na prístup k hodnotám môžete tiež použiť funkciu getattr () s namedtuple. Namedtuple je kontajner typu slovníka, ale k jeho hodnotám môžete získať prístup pomocou funkcie getattar (). Namedtuple je modul triedy zbierok. Implementujme pomenovanú dvojicu a prístup k hodnotám pomocou funkcie getattr (). Pre študenta vytvárame menovku.
#importovanie modulu zbierokimportovať zbierky
#vytvorenie pomenovanej dvojice pre študenta
# meno a vek sú kľúče
Študent = zbierky.namedtuple ('Študent', ['meno', 'vek'])
#vytvorenie nového učiteľa a pridanie hodnôt
std = Študent ("John", 21)
print ("Názov je:", getattr (std, "meno"))
print ("Vek je:", getattr (std, "vek"))
Výkon
Záver
Funkcia getattar () je vstavaná funkcia v Pythone, ktorá vracia hodnotu atribútu objektu. Hlavným dôvodom použitia funkcie getattr () je, že uľahčuje prístup k hodnote atribútu pomocou názvu atribútu. Názov atribútu je definovaný ako reťazec a hodnotu získame pomocou funkcie getattar (). Pre chýbajúci atribút je možné definovať aj hodnotu. Dúfajme, že po prečítaní tohto článku ste sa dozvedeli viac o tom, ako používať funkciu Python getattar ().