Я просмотрел большую часть документации __getitem__
в документах Python, а также в stackoverflow, поэтому это не дублирующий вопрос. Но я все еще не могу понять смысл этого.
Итак, я могу понять, что __getitem__
используется для реализации вызовов типа self[key]
. Но в чем его польза?
Предположим, что у меня есть класс python, определенный таким образом:
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"])
Это возвращает результаты, как ожидалось. Но зачем использовать __getitem__
в первую очередь? Я также слышал, что Python вызывает __getitem__
внутренне. Но почему он это делает?
Может кто-нибудь объяснить это более подробно?