logo

__getitem__() în Python

În Python, totul este un obiect. Există o mulțime de metode „obișnuite” de apel de sistem pe aceste obiecte în spatele scenei, care nu sunt vizibile pentru programator. Iată ce se numesc ca metode magice . Metodele magice din python sunt metode speciale care sunt invocate atunci când rulăm orice cod python obișnuit. Pentru a le diferenția cu funcțiile normale, au în jur liniuțe de subliniere duble.

Dacă vrem să adăugăm a și b, scriem următoarea sintaxă:



 c = a + b>

Pe plan intern se numește:

 c = a.__add__(b)>

__getitem__()>este o metodă magică în Python, care, atunci când este utilizată într-o clasă, permite instanțelor sale să folosească[]>operatori (indexator). Atunci să spunem că x este o instanță a acestei clasex[i]>este aproximativ echivalent cutype(x).__getitem__(x, i)>.

programare r in c

Metoda__getitem__(self, key)>definește comportamentul atunci când un articol este accesat, folosind notațiaself[key]>. Aceasta face parte, de asemenea, din ambele protocoale de containere mutabile și imuabile.



Exemplu:




când începe q2

porniți java



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

tuplu sortat python
>

>

Ieșire:

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

Spre deosebire de alte limbi, Python vă permite practic să treceți orice obiect în indexator. S-ar putea să fii surprins cătest[1, 'x', 10.0]>de fapt analizează. Pentru interpretul Python, acea expresie este echivalentă cu aceasta:test.__getitem__((1, 'x', 10.0))>. După cum puteți vedea, partea 1, „x”, 10.0 este implicit analizată ca un tuplu. Thetest[5:65:5]>expresia folosește sintaxa slice a lui Python. Este echivalentă cu această expresie: test[slice(5, 65, 5)].

The__getitem__>metoda magică este de obicei folosită pentru indexarea listelor, căutarea în dicționar sau accesarea intervalelor de valori. Având în vedere cât de versatil este, este probabil una dintre cele mai subutilizate metode magice ale Python.