Zdjęcie autora
Python to magiczny język z wieloma koncepcjami, których nawet zaawansowani użytkownicy mogą nie znać. Jedną z nich są metody Dundera lub metody magiczne. Metody magiczne to metody specjalne otoczone podwójnymi podkreśleniami. Nie są one wywoływane jawnie, w przeciwieństwie do zwykłych metod w Pythonie. Jedną z takich magicznych metod jest __getitem__
metoda, dzięki której obiekty Pythona zachowują się jak sekwencje lub kontenery, np. listy, słowniki i krotki. Pobiera indeks lub wycinek i pobiera powiązaną z nim wartość z kolekcji. Jest wywoływany automatycznie za każdym razem, gdy używamy metody indexer [ ]
operator, aby uzyskać dostęp do elementów w obiekcie.
Pomyśl o tej metodzie jak o magicznej różdżce, która daje ci moc wydobycia wymaganych informacji po prostu przez napisanie kilku linijek kodu. Ciekawe, prawda? Metoda ta jest również szeroko stosowana w analizie danych i uczeniu maszynowym. Zanurzmy się więc głębiej w __getitem__
metodę i odkryj jej moc i elastyczność.
Chcę, abyś zrozumiał, że Twoje obowiązki jako programisty Pythona to coś więcej niż tylko pisanie kodu funkcjonalnego. Twój kod powinien być wydajny, czytelny i łatwy w utrzymaniu. Za pomocą __getitem__
pomoże Ci osiągnąć te cele. Oto kilka innych korzyści płynących ze stosowania tej magicznej metody:
- Zmniejsza zużycie pamięci, umożliwiając wyodrębnienie tylko niezbędnych informacji zamiast ładowania do pamięci całej struktury danych
- Zapewnia większą elastyczność w sposobie obsługi i manipulacji danymi
- Umożliwia iterację po kolekcji bez zapętlania danych
- Zwiększa funkcjonalność, umożliwiając pisanie zaawansowanego indeksowania, które może nie być możliwe w przypadku typów wbudowanych
- Upraszcza kod, ponieważ używa znanej notacji
Składnia dla __getitem__
metoda jest następująca:
def __getitem__(self, index): # Your Implementation pass
Definiuje zachowanie funkcji i przyjmuje w jej parametrze indeks, do którego próbujesz uzyskać dostęp. Możemy użyć tej metody w następujący sposób:
my_obj[index]
To przekłada się na stwierdzenie my_obj.__getitem__(index)
pod maską. Teraz możesz pomyśleć, czym różni się od wbudowanego indexer []
operator? Gdziekolwiek używasz tej notacji, Python automatycznie wywołuje metodę __getitem__
metoda dla Ciebie i jest skrótem dostępu do elementów. Ale jeśli chcesz zmienić zachowanie indeksowania obiektów niestandardowych, musisz jawnie wywołać funkcję __getitem__
Metoda.
Przykład 01
Zacznijmy najpierw od prostego przykładu. Stworzymy klasę Student, która będzie zawierała listę wszystkich uczniów i będziemy mogli uzyskać do nich dostęp za pomocą indeksu, biorąc pod uwagę, że indeks reprezentuje ich unikalny identyfikator studenta.
class Student: def __init__(self, names): self.names=names def __getitem__(self,index): return self.names[index] section_A= Student(["David", "Elsa", "Qasim"])
print(section_A[2])
Wyjście:
Teraz przejdziemy do zaawansowanego przykładu, w którym zmienimy zachowanie indeksowania za pomocą __getitem__
metoda. Załóżmy, że mam listę elementów ciągu i chcę pobrać ten element za każdym razem, gdy wprowadzę jego pozycję indeksu. Pozycję indeksu mogę także uzyskać, jeśli wprowadzę sam ciąg.
class MyList: def __init__(self, items): self.items = items def __getitem__(self, index): if isinstance(index, int): return self.items[index] elif isinstance(index, str): return self.items.index(index) else: raise TypeError("Invalid Argument Type") my_list = MyList(['red', 'blue', 'green', 'black']) # Indexing with integer keys
print(my_list[0]) print(my_list[2]) # Indexing with string keys
print(my_list['red']) print(my_list['green'])
Wyjście:
red
green
0 2
Ta metoda jest niezwykle przydatna do szybkiego wyszukiwania atrybutów instancji. Biorąc pod uwagę elastyczność i wszechstronność tej metody, powiedziałbym, że jest to jedna z najrzadziej wykorzystywanych magicznych metod Pythona. Mam nadzieję, że podobała Ci się lektura tego artykułu. Jeśli chcesz dowiedzieć się więcej o innych magicznych metodach w Pythonie, daj mi znać w sekcji komentarzy.
Kanwal Mehreen jest początkującym programistą, żywo zainteresowanym nauką o danych i zastosowaniami sztucznej inteligencji w medycynie. Kanwal został wybrany jako Google Generation Scholar 2022 dla regionu APAC. Kanwal uwielbia dzielić się wiedzą techniczną, pisząc artykuły na popularne tematy, i pasjonuje się ulepszaniem reprezentacji kobiet w branży technologicznej.
- Dystrybucja treści i PR oparta na SEO. Uzyskaj wzmocnienie już dziś.
- Platoblockchain. Web3 Inteligencja Metaverse. Wzmocniona wiedza. Dostęp tutaj.
- Źródło: https://www.kdnuggets.com/2023/03/introduction-getitem-magic-method-python.html?utm_source=rss&utm_medium=rss&utm_campaign=introduction-to-__getitem__-a-magic-method-in-python
- :Jest
- 2022
- 8
- a
- O nas
- dostęp
- Dostęp
- Osiągać
- zaawansowany
- AI
- AI w medycynie
- Wszystkie kategorie
- Pozwalać
- analiza
- i
- APAC
- aplikacje
- SĄ
- argument
- artykuł
- towary
- AS
- ambitny
- powiązany
- atrybuty
- automatycznie
- BE
- Korzyści
- Czarny
- Niebieski
- wbudowany
- by
- wezwanie
- nazywa
- Połączenia
- CAN
- zmiana
- klasa
- kod
- kolekcja
- komentarz
- kompletny
- Koncepcje
- Rozważać
- wobec
- Pojemniki
- Stwórz
- zwyczaj
- dane
- analiza danych
- nauka danych
- David
- głębiej
- Definiuje
- Deweloper
- różne
- odkryj
- Podwójna
- e
- łatwo
- wydajny
- element
- Elementy
- umożliwiając
- Wchodzę
- niezbędny
- Parzyste
- przykład
- wyciąg
- niezwykle
- znajomy
- kilka
- i terminów, a
- Elastyczność
- następujący sposób
- W razie zamówieenia projektu
- od
- funkcjonować
- funkcjonalny
- Funkcjonalność
- generacja
- otrzymać
- Gole
- Dotacje
- większy
- Zielony
- obsługiwane
- Have
- pomoc
- tutaj
- kaptur
- nadzieję
- W jaki sposób
- HTTPS
- i
- ID
- realizacja
- poprawy
- in
- wskaźnik
- przemysł
- Informacja
- przykład
- zamiast
- odsetki
- zainteresowany
- ciekawy
- Wprowadzenie
- IT
- szt
- JEGO
- samo
- Knuggety
- Zapalony
- Klawisze
- Wiedzieć
- wiedza
- język
- nauka
- lubić
- linie
- Lista
- wykazy
- załadunek
- wyszukiwania
- maszyna
- uczenie maszynowe
- magia
- Utrzymywane w utrzymaniu
- manipulować
- wiele
- lekarstwo
- Pamięć
- metoda
- metody
- może
- jeszcze
- większość
- ruch
- Nazwy
- Potrzebować
- przedmiot
- obiekty
- of
- on
- ONE
- operator
- zwykły
- Inne
- parametr
- namiętny
- plato
- Analiza danych Platona
- PlatoDane
- position
- możliwy
- power
- Programista
- Python
- Szybki
- podnieść
- Czytający
- Czerwony
- region
- reprezentacja
- reprezentuje
- wymagany
- powrót
- s
- nauka
- Sekcja
- wybrany
- SAMEGO SIEBIE
- Share
- stenografia
- powinien
- Plaster
- So
- Tworzenie
- kilka
- specjalny
- początek
- Zestawienie sprzedaży
- Struktura
- student
- Studenci
- taki
- otoczony
- składnia
- trwa
- tech
- przemysł technologiczny
- Techniczny
- że
- Połączenia
- ich
- Im
- Te
- Myśleć
- do
- tematy
- trendy
- typy
- dla
- zrozumieć
- wyjątkowy
- us
- Stosowanie
- posługiwać się
- Użytkownicy
- wartość
- różdżka
- szeroko
- będzie
- w
- w ciągu
- bez
- Kobieta
- kobiety w technice
- by
- napisać
- pisanie
- Twój
- zefirnet