logo

__getitem__() programmā Python

Python versijā viss ir objekts. Šiem objektiem aiz ainas ir daudz “parasto” sistēmas izsaukuma metožu, kuras programmētājs neredz. Šeit nāk tas, ko sauc par burvju metodes . Maģiskās metodes python ir īpašas metodes, kas tiek izsauktas, kad mēs palaižam jebkuru parasto python kodu. Lai tos atšķirtu no parastajām funkcijām, tiem ir apkārtējās dubultās pasvītras.

Ja vēlamies pievienot a un b, mēs rakstām šādu sintaksi:



 c = a + b>

Iekšēji to sauc šādi:

 c = a.__add__(b)>

__getitem__()>ir maģiska metode Python, kas, izmantojot klasē, ļauj tās gadījumiem izmantot[]>(indeksētāja) operatori. Sakiet, ka x ir šīs klases gadījumsx[i]>ir aptuveni līdzvērtīgstype(x).__getitem__(x, i)>.

abstraktas metodes

Metode__getitem__(self, key)>definē uzvedību, kad tiek piekļūts vienumam, izmantojot apzīmējumuself[key]>. Tas ir arī daļa no mainīgā un nemainīgā konteinera protokola.



Piemērs:




java pamati



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

stāvus
>

>

Izvade:

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

Atšķirībā no dažām citām valodām, Python pamatā ļauj indeksētājam nodot jebkuru objektu. Jūs varat būt pārsteigts, katest[1, 'x', 10.0]>faktiski parsē. Python tulkam šī izteiksme ir līdzvērtīga šim:test.__getitem__((1, 'x', 10.0))>. Kā redzat, daļa 1, “x”, 10.0 tiek netieši parsēta kā kortežs. Thetest[5:65:5]>izteiksme izmanto Python šķēluma sintaksi. Tas ir līdzvērtīgs šai izteiksmei: test[slice(5, 65, 5)].

The__getitem__>burvju metodi parasti izmanto sarakstu indeksēšanai, vārdnīcas meklēšanai vai vērtību diapazonu piekļuvei. Ņemot vērā to, cik tas ir daudzpusīgs, tā, iespējams, ir viena no Python visvairāk neizmantotajām maģijas metodēm.