logo

__getitem__() v Pythone

V Pythone je všetko objekt. Na týchto objektoch za scénou existuje veľa „obyčajných“ metód systémového volania, ktoré programátor nevidí. Tu prichádza to, čo sa nazýva ako magické metódy . Magické metódy v pythone sú špeciálne metódy, ktoré sa vyvolávajú pri spustení akéhokoľvek bežného kódu pythonu. Na odlíšenie od normálnych funkcií majú okolité dvojité podčiarknutia.

Ak chceme pridať a a b, napíšeme nasledujúcu syntax:



 c = a + b>

Vnútorne sa nazýva:

vlk vs líška
 c = a.__add__(b)>

__getitem__()>je magická metóda v Pythone, ktorá pri použití v triede umožňuje jej inštanciám používať metódu[]>(indexer) operátory. Povedzme, že x je inštanciou tejto triedyx[i]>je približne ekvivalentnátype(x).__getitem__(x, i)>.

Metóda__getitem__(self, key)>definuje správanie pri prístupe k položke pomocou zápisuself[key]>. Toto je tiež súčasťou protokolov premeniteľných aj nemenných kontajnerov.



Príklad:

povedal Madhuri






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

unordered_map c++

>

>

ďalej skener

Výkon:

 5 slice(5, 65, 5) techcodeview.com (1, 'x', 10.0) slice('a', 'z', 2)>

Na rozdiel od niektorých iných jazykov vám Python v podstate umožňuje odovzdať akýkoľvek objekt do indexátora. Možno vás prekvapí, žetest[1, 'x', 10.0]>vlastne analyzuje. Pre tlmočníka Pythonu je tento výraz ekvivalentný tomuto:test.__getitem__((1, 'x', 10.0))>. Ako vidíte, časť 1, „x“, 10.0 je implicitne analyzovaná ako n-tica. Thetest[5:65:5]>výraz využíva syntax rezu Pythonu. Je ekvivalentný tomuto výrazu: test[slice(5, 65, 5)].

The__getitem__>magická metóda sa zvyčajne používa na indexovanie zoznamov, vyhľadávanie v slovníkoch alebo prístup k rozsahom hodnôt. Vzhľadom na to, aký je všestranný, je to pravdepodobne jedna z najmenej využívaných magických metód Pythonu.