He revisado la mayor parte de la documentación de los documentos de __getitem__Python, pero aún no puedo entender el significado de la misma.
Entonces, todo lo que puedo entender es que __getitem__se usa para implementar llamadas como self[key]. ¿Pero de qué sirve?
Digamos que tengo una clase de python definida de esta manera:
class Person:
def __init__(self,name,age):
self.name = name
self.age = age
def __getitem__(self,key):
print ("Inside `__getitem__` method!")
return getattr(self,key)
p = Person("Subhayan",32)
print (p["age"])
Esto devuelve los resultados como se esperaba. Pero, ¿por qué usar __getitem__en primer lugar? También he escuchado que Python llama __getitem__internamente. ¿Pero por qué lo hace?
¿Alguien puede explicar esto con más detalle?
__getitem__uso en su ejemplo no tiene mucho sentido, pero imagine que necesita escribir una clase personalizada de tipo lista o diccionario, que tiene que funcionar con el código existente que usa []. Esa es una situación donde __getitem__es útil.