Pyton

Funkcja getattr() Pythona

Funkcja getattr() Pythona

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 studenckiej
Uczeń 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 studenckiej
Uczeń 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 studenckiej
Uczeń 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 kolekcji
importuj 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.

Remap your mouse buttons differently for different software with X-Mouse Button Control
Maybe you need a tool that could make your mouse's control change with every application that you use. If this is the case, you can try out an applica...
Microsoft Sculpt Touch Wireless Mouse Review
I recently read about the Microsoft Sculpt Touch wireless mouse and decided to buy it. After using it for a while, I decided to share my experience wi...
AppyMouse On-screen Trackpad and Mouse Pointer for Windows Tablets
Tablet users often miss the mouse pointer, especially when they are habitual to using the laptops. The touchscreen Smartphones and tablets come with m...