V Pythonu je vse predmet. Za temi objekti je v ozadju veliko 'navadnih' sistemskih klicnih metod, ki jih programer ne vidi. Tukaj pridejo tako imenovani čarobne metode . Čarobne metode v pythonu so posebne metode, ki se prikličejo, ko zaženemo katero koli običajno kodo python. Da bi jih razlikovali od običajnih funkcij, imajo okoli njih dvojne podčrtaje.
Če želimo dodati a in b, zapišemo naslednjo sintakso:
c = a + b>
Interno se imenuje:
c = a.__add__(b)>
__getitem__()>je čarobna metoda v Pythonu, ki ob uporabi v razredu dovoljuje svojim primerkom uporabo[]>(indexer) operaterji. Recimo, da je x primerek tega razredax[i]>je približno enakovrednotype(x).__getitem__(x, i)>.
Metoda__getitem__(self, key)>definira vedenje ob dostopu do elementa z uporabo zapisaself[key]>. To je tudi del spremenljivega in nespremenljivega vsebniškega protokola.
vrzi niz v int
primer:
python // operater
# Code to demonstrate use> # of __getitem__() in python> > > class> Test(>object>):> > ># This function prints the type> ># of the object passed as well> ># as the object item> >def> __getitem__(>self>, items):> >print> (>type>(items), items)> > # Driver code> test>=> Test()> test[>5>]> test[>5>:>65>:>5>]> test[>'techcodeview.com'>]> test[>1>,>'x'>,>10.0>]> test[>'a'>:>'z'>:>2>]> test[>object>()]> |
>
ukaz grep v linuxu
>
Izhod:
5 slice(5, 65, 5) techcodeview.com (1, 'x', 10.0) slice('a', 'z', 2)> Za razliko od nekaterih drugih jezikov vam Python v bistvu omogoča, da v indekser prenesete kateri koli predmet. Morda boste presenečeni, datest[1, 'x', 10.0]>dejansko razčlenjuje. Za tolmača Pythona je ta izraz enakovreden temu:test.__getitem__((1, 'x', 10.0))>. Kot lahko vidite, je del 1, 'x', 10.0 implicitno razčlenjen kot tuple. Thetest[5:65:5]>izraz uporablja Pythonovo sintakso rezine. Enakovredno je temu izrazu: test[slice(5, 65, 5)].
The__getitem__>čarobna metoda se običajno uporablja za indeksiranje seznamov, iskanje po slovarju ali dostopanje do obsegov vrednosti. Glede na to, kako vsestranski je, je verjetno ena najbolj premalo uporabljenih čarobnih metod Pythona.