Široká škála vestavěných modulů, funkcí a příkazů Pythonu pomáhá programátorům provádět různé úkoly. Funkce getattr () je vestavěná funkce Pythonu, která umožňuje programátorům přístup k hodnotě atributu objektu. Pokud hodnota není nalezena, vrátí funkce getattar () výchozí hodnotu. To je důvod, proč se funkce getattr () používá hlavně pro přístup k hodnotám atributů objektů. Tento článek poskytne podrobné vysvětlení funkce getattr () s několika příklady.
Syntax
Než přejdeme k implementaci funkce getattr (), nejprve probereme její syntaxi. Syntaxe funkce getattr () je následující:
getattr (název_objektu, název_atributu, výchozí_hodnota)
Funkce getattr () bere jako argument tři parametry:
název_objektu: Název objektu, k jehož atributu potřebujeme přístup.
název_atributu: Název atributu, ke kterému musíme přistupovat.
výchozí hodnota: Výchozí hodnota, která se vrátí, když atribut není nalezen.
Pokud atribut name nebyl nalezen a nedefinujeme default_value, funkce getattar () vyvolá výjimku AttributeError.
Příklady
Nyní se podíváme na několik příkladů pomocí funkce getattr (). Vytvořili jsme třídu studentů a definovali některé atributy této třídy. K těmto atributům přistupujeme pomocí funkce getattar ().
#vytvoření studentské třídytřída Student:
# definování atributu názvu
name = "John"
# definování atributu e-mailu
email = "[e-mail chráněn]"
# Vytvoření objektu třídy studenta
std_obj = Student ()
#now std_obj je náš objekt
#accessing the name attribute
print ("Hodnota atributu name je:", getattr (std_obj, 'name'))
#accessing the email attribute
print ("Hodnota atributu e-mailu je:", getattr (std_obj, 'email'))
Výstup
Funkce getattr () úspěšně vrátila hodnoty atributů.
Nyní se pokusíme získat přístup k atributu, který není definován. Definujeme výchozí hodnotu pro tento chybějící atribut.
#vytvoření studentské třídytřída Student:
# definování atributu názvu
name = "John"
# definování atributu e-mailu
email = "[e-mail chráněn]"
# Vytvoření objektu třídy studenta
std_obj = Student ()
#now std_obj je náš objekt
#accessing the age attribute
print ("The age is:", getattr (std_obj, 'age', 'Above 20'))
Definovaná hodnota je „Nad 20“.
Výstup
V případě chybějícího atributu „age“ se vytiskne definovaná hodnota.
Pokud hodnota není definována, funkce getattr () vyvolá výjimku 'AttributeError'. Podívejme se na příklad.
#vytvoření studentské třídytřída Student:
# definování atributu názvu
name = "John"
# definování atributu e-mailu
email = "[e-mail chráněn]"
# Vytvoření objektu třídy studenta
std_obj = Student ()
#now std_obj je náš objekt
#accessing the age attribute
print ("Věk je:", getattr (std_obj, 'věk'))
Výstup
Pro přístup k hodnotám můžete také použít funkci getattr () s namedtuple. Namedtuple je kontejner typu slovníku, ale k jeho hodnotám můžete přistupovat pomocí funkce getattar (). Namedtuple je modul třídy sbírek. Implementujme pojmenovaný tuple a přistupujme k hodnotám pomocí funkce getattr (). Pro studenta vytváříme jmennou n-tici.
#importování modulu sbírekimportovat sbírky
#vytvoření jmenovky pro studenta
# jméno a věk jsou klíče
Student = sbírky.namedtuple ('Student', ['name', 'age'])
#vytvoření nového učitele a přidání hodnot
std = Student ("John", 21)
print ("Název je:", getattr (std, "name"))
print ("Věk je:", getattr (std, "věk"))
Výstup
Závěr
Funkce getattar () je integrovaná funkce v Pythonu, která vrací hodnotu atributu objektu. Primárním důvodem pro použití funkce getattr () je to, že usnadňuje přístup k hodnotě atributu pomocí názvu atributu. Název atributu je definován jako řetězec a hodnotu získáme pomocí funkce getattar (). Pro chybějící atribut lze také definovat hodnotu. Po přečtení tohoto článku, doufejme, jste se dozvěděli více o tom, jak používat funkci Python getattar ().