__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 clase x[i]> este aproximativ echivalent cu type(x).__getitem__(x, i)> .
Metoda __getitem__(self, key)> definește comportamentul atunci când un articol este accesat, folosind notația self[key]> . Aceasta face parte, de asemenea, din ambele protocoale de containere mutabile și imuabile.
Exemplu:
# 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> ()]> |
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. The test[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.