Passei pela maior parte da documentação dos documentos do __getitem__
Python, mas ainda não consigo entender o significado dela.
Então, tudo o que consigo entender é que __getitem__
é usado para implementar chamadas como self[key]
. Mas qual é a utilidade disso?
Digamos que eu tenho uma classe python definida desta maneira:
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"])
Isso retorna os resultados conforme o esperado. Mas por que usar __getitem__
em primeiro lugar? Também ouvi dizer que o Python chama __getitem__
internamente. Mas por que isso acontece?
Alguém pode explicar isso com mais detalhes?
__getitem__
uso no seu exemplo não faz muito sentido, mas imagine que você precise escrever uma classe personalizada de lista ou dicionário, que precisa trabalhar com o código existente que o usa []
. Essa é uma situação em que __getitem__
é útil.