Bevezetés a __getitem__: Egy mágikus módszer a Pythonban

Bevezetés a __getitem__: Egy mágikus módszer a Pythonban

Forrás csomópont: 2011206

Bevezetés a __getitem__: Egy mágikus módszer a Pythonban
A kép szerzője

A Python egy varázslatos nyelv számos fogalommal, amelyeket még a haladó felhasználók sem ismernek. A Dunder vagy a Magical módszerek közé tartozik. A mágikus módszerek olyan speciális módszerek, amelyeket dupla aláhúzás veszi körül. A python szokásos metódusaitól eltérően nem nevezik őket kifejezetten. Az egyik ilyen varázslatos módszer a __getitem__ metódus, amely lehetővé teszi, hogy a Python objektumok szekvenciákként vagy konténerekként viselkedjenek, pl. listák, szótárak és sorok. Felveszi az indexet vagy a szeletet, és lekéri a hozzá tartozó értéket a gyűjteményből. A rendszer automatikusan meghívja, amikor használjuk a indexer [ ] operátort, hogy hozzáférjen az objektumon belüli elemekhez.

Tekintse ezt a módszert egy varázspálcaként, amely lehetővé teszi, hogy néhány sornyi kód írásával kinyerje a szükséges információkat. Érdekes igaz? Ezt a módszert széles körben alkalmazzák az adatelemzésben és a gépi tanulásban is. Szóval, merüljünk mélyebben a __getitem__ módszert, és fedezze fel annak erejét és rugalmasságát.

Szeretném, ha megértené, hogy Python programozóként a kötelessége több, mint funkcionális kód írása. A kódnak hatékonynak, olvashatónak és karbantarthatónak kell lennie. Használata __getitem__ segít elérni ezeket a célokat. Íme néhány további előnye ennek a varázslatos módszernek:

  • Csökkenti a memóriahasználatot azáltal, hogy lehetővé teszi, hogy csak a lényeges információkat nyerje ki ahelyett, hogy a teljes adatszerkezetet betöltené a memóriába
  • Nagyobb rugalmasságot biztosít az adatok kezelésében és kezelésében
  • Lehetővé teszi a gyűjtemény ismétlését anélkül, hogy az adatokon át kellene ismételni
  • Javítja a funkcionalitást azáltal, hogy lehetővé teszi olyan speciális indexelés írását, amely nem biztos, hogy lehetséges a beépített típusokkal
  • Leegyszerűsíti a kódot, mivel az ismerős jelölést használja

A. Szintaxisa __getitem__ a módszer a következő:

def __getitem__(self, index): # Your Implementation pass

 

Meghatározza a függvény viselkedését, és paraméterébe veszi az elérni kívánt indexet. Ezt a módszert így használhatjuk:

my_obj[index] 

 

Ez az állítást jelenti my_obj.__getitem__(index) a motorháztető alatt. Most azt gondolhatja, hogy miben különbözik a beépítetttől indexer [] operátor? Bárhol használja ezt a jelölést, a python automatikusan meghívja a __getitem__ módszer az Ön számára, és az elemek elérésének rövidítése. Ha azonban meg akarja változtatni az egyéni objektumok indexelésének viselkedését, akkor kifejezetten meg kell hívnia a __getitem__ módszer.

01. példa

Kezdjük először egy egyszerű példával. Létrehozunk egy Tanuló osztályt, amelyben az összes tanuló listája lesz, és index alapján érhetjük el őket, és úgy tekinthetjük, hogy az index az egyedi diákazonosítójukat képviseli.

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])

 

output:

 

Most áttérünk egy speciális példára, ahol megváltoztatjuk az indexelési viselkedést a __getitem__ módszer. Tegyük fel, hogy van egy listám a karakterláncelemekről, és le akarom kérni az elemet, amikor megadom az indexpozícióját, és akkor is megkaphatom az indexpozíciót, ha magát a karakterláncot beírom.

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']) 

 

output:

red
green
0 2

Ez a módszer rendkívül hasznos a példányattribútumok gyors kikereséséhez. Figyelembe véve ennek a módszernek a rugalmasságát és sokoldalúságát, azt mondanám, hogy ez a Python egyik leginkább kihasználatlan mágikus módszere. Remélem, élvezte a cikk olvasását, és jelezze a megjegyzés részben, ha érdekel a Python többi varázslatos módszere.
 
 
Kanwal Mehreen törekvő szoftverfejlesztő, akit élénken érdekel az adattudomány és a mesterséges intelligencia alkalmazása az orvostudományban. Kanwalt választották a Google Generation Scholar 2022-nek az APAC régióban. Kanwal szereti megosztani a műszaki ismereteket azzal, hogy cikkeket ír felkapott témákról, és szenvedélyesen törekszik a nők képviseletének javítására a technológiai iparban.
 

Időbélyeg:

Még több KDnuggets