logo

__getitem__() en Python

En Python todo es un objeto. Hay muchos métodos de llamada al sistema 'ordinarios' en estos objetos detrás de escena que no son visibles para el programador. Aquí vienen los que se llaman metodos magicos . Los métodos mágicos en Python son métodos especiales que se invocan cuando ejecutamos cualquier código Python normal. Para diferenciarlos de las funciones normales, tienen guiones bajos dobles circundantes.

Si queremos sumar a y b, escribimos la siguiente sintaxis:



f películas
 c = a + b>

Internamente se llama así:

 c = a.__add__(b)>

__getitem__()>es un método mágico en Python, que cuando se usa en una clase, permite que sus instancias usen el[]>Operadores (indexador). Digamos que x es una instancia de esta clase, entoncesx[i]>es aproximadamente equivalente atype(x).__getitem__(x, i)>.

El método__getitem__(self, key)>define el comportamiento cuando se accede a un elemento, utilizando la notaciónself[key]>. Esto también es parte de los protocolos de contenedores mutables e inmutables.



Ejemplo:






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

algoritmo de cabina

>

>

Producción:

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

A diferencia de otros lenguajes, Python básicamente te permite pasar cualquier objeto al indexador. Quizás se sorprenda de que eltest[1, 'x', 10.0]>en realidad analiza. Para el intérprete de Python, esa expresión es equivalente a esto:test.__getitem__((1, 'x', 10.0))>. Como puede ver, la parte 1, 'x', 10.0 se analiza implícitamente como una tupla. Eltest[5:65:5]>La expresión hace uso de la sintaxis de corte de Python. Es equivalente a esta expresión: prueba[slice(5, 65, 5)].

El__getitem__>El método mágico se usa generalmente para indexar listas, buscar en diccionarios o acceder a rangos de valores. Teniendo en cuenta lo versátil que es, probablemente sea uno de los métodos mágicos menos utilizados de Python.