Usando getitem en Python

Fariba Laiq 14 abril 2022
Usando getitem en Python

__getitem__() es un método mágico en python. Los métodos mágicos son aquellos métodos que el programador no invoca directamente al escribir un código.

Estos métodos son llamadas al sistema que se invocan automáticamente en el back-end. La diferencia entre los métodos mágicos y normales es que los métodos mágicos están rodeados por guiones bajos dobles.

Por eso también se les llama métodos dunder. Dunder aquí significa guiones bajos dobles. Los métodos mágicos también se utilizan para la sobrecarga de operadores.

El uso de __getitem__() en una clase permite que las instancias de una clase utilicen el operador indexador [ ] con las variables de referencia de una clase para acceder al valor de una lista, diccionario o tupla desde un índice específico.

Este método se invoca automáticamente cuando usamos el operador indexador con la variable de referencia de la clase. En el siguiente código hemos creado una clase Person, y en el constructor de la clase hemos pasado la lista de nombres al crear un objeto.

Hemos definido explícitamente el método __getitem__(), que toma el índice de la lista como argumento y devuelve el nombre asociado a ese índice. Aquí en el código, no hemos llamado explícitamente al método __getitem__().

Este método se llama automáticamente cuando se intenta acceder al valor en un índice de lista determinado mediante el operador [ ]. Este método se invoca implícitamente como p1.__getitem__(1) cuando escribimos p1[1] para acceder a los valores presentes en el índice 1 de la lista.

Código de ejemplo:

# python 3.x
class Person:
    def __init__(self, names):
        self.names = names

    def __getitem__(self, index):
        return self.names[index]


p1 = Person(["Jhon", "Kevin"])
print(p1[1])

Producción :

# python 3.x
Kevin
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

Artículo relacionado - Python Class