Ogromna różnorodność wbudowanych modułów, funkcji i instrukcji Pythona pomaga programistom w wykonywaniu różnych zadań. Funkcja getattr() jest wbudowaną funkcją Pythona, która umożliwia programistom dostęp do wartości atrybutu obiektu. Jeśli wartość nie zostanie znaleziona, funkcja getattar() zwraca wartość domyślną. To jest powód, dla którego funkcja getattr() jest używana głównie do uzyskiwania dostępu do wartości atrybutów obiektów. W tym artykule znajdziesz szczegółowe wyjaśnienie funkcji getattr() wraz z kilkoma przykładami.
Składnia
Zanim przejdziemy do implementacji funkcji getattr(), najpierw omówimy jej składnię. Składnia funkcji getattr() jest następująca:
getattr(nazwa_obiektu,nazwa_atrybutu,wartośćdomyślna)
Funkcja getattr() przyjmuje jako argument trzy parametry:
nazwa_obiektu: Nazwa obiektu, do którego atrybutu musimy uzyskać dostęp.
nazwa_atrybutu: Nazwa atrybutu, do którego musimy uzyskać dostęp.
domyślna wartość: Domyślna wartość zwracana, gdy atrybut nie zostanie znaleziony.
Jeśli atrybut name nie zostanie znaleziony i nie zdefiniujemy wartości default_value, funkcja getattar() zgłosi wyjątek AttributeError.
Przykłady
Teraz przyjrzymy się kilku przykładom wykorzystującym funkcję getattr(). Stworzyliśmy klasę studencką i zdefiniowaliśmy kilka atrybutów dla tej klasy. Dostęp do tych atrybutów uzyskujemy za pomocą funkcji getattar().
#tworzenie klasy studenckiejUczeń klasy:
#definiowanie atrybutu nazwy
imię ="Jan"
#definiowanie atrybutu e-mail
email="[email chroniony]"
#Tworzenie obiektu klasy ucznia
std_obj = Student()
#teraz std_obj jest naszym obiektem
#dostęp do atrybutu nazwy
print("Wartość atrybutu nazwy to: ",getattr(std_obj,'nazwa'))
#dostęp do atrybutu e-mail
print("Wartość atrybutu email to: ",getattr(std_obj,'email'))
Wynik
Funkcja getattr() pomyślnie zwróciła wartości atrybutów.
Teraz spróbujemy uzyskać dostęp do atrybutu, który nie jest zdefiniowany. Zdefiniujemy domyślną wartość tego brakującego atrybutu.
#tworzenie klasy studenckiejUczeń klasy:
#definiowanie atrybutu nazwy
imię ="Jan"
#definiowanie atrybutu e-mail
email="[email chroniony]"
#Tworzenie obiektu klasy ucznia
std_obj = Student()
#teraz std_obj jest naszym obiektem
#dostęp do atrybutu wieku
print("Wiek to: ",getattr(std_obj,'wiek','Powyżej 20'))
Zdefiniowana wartość to „Powyżej 20”.
Wynik
W przypadku braku atrybutu „wiek” wypisywana jest zdefiniowana wartość.
Jeśli wartość nie jest zdefiniowana, funkcja getattr() zgłosi wyjątek „AttributeError”. Zobaczmy na przykład tego.
#tworzenie klasy studenckiejUczeń klasy:
#definiowanie atrybutu nazwy
imię ="Jan"
#definiowanie atrybutu e-mail
email="[email chroniony]"
#Tworzenie obiektu klasy ucznia
std_obj = Student()
#teraz std_obj jest naszym obiektem
#dostęp do atrybutu wieku
print("Wiek to: ",getattr(std_obj,'wiek'))
Wynik
Możesz także użyć funkcji getattr() z namedtuple, aby uzyskać dostęp do wartości. namedtuple jest kontenerem typu słownikowego, ale możesz uzyskać dostęp do jego wartości za pomocą funkcji getattar(). Nazwanytuple jest klasą modułu kolekcji. Zaimplementujmy namedtuple i uzyskajmy dostęp do wartości za pomocą funkcji getattr(). Tworzymy imienną krotkę dla ucznia.
#importowanie modułu kolekcjiimportuj kolekcje
#tworzenie imiennej krotki dla ucznia
#imię i wiek to klucze
Student= kolekcje.namedtuple('Student',['imię','wiek'])
#tworzenie nowego nauczyciela i dodanie wartości
std = Student("Jan",21)
print("Nazwa to:" ,getattr(std,"nazwa"))
print("Wiek to: ",getattr(std,"wiek"))
Wynik
Wniosek
Funkcja getattar() jest wbudowaną funkcją w Pythonie, która zwraca wartość atrybutu obiektu. Głównym powodem używania funkcji getattr() jest to, że ułatwia ona dostęp do wartości atrybutu przy użyciu nazwy atrybutu. Nazwa atrybutu jest zdefiniowana jako ciąg, a wartość otrzymujemy za pomocą funkcji getattar(). Można również zdefiniować wartość dla brakującego atrybutu. Mam nadzieję, że po przeczytaniu tego artykułu dowiedziałeś się więcej o tym, jak używać funkcji getattar() Pythona.