Я просмотрел большую часть документации __getitem__Python, но все еще не могу понять ее смысл.
Итак, все, что я могу понять, это то, что __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__внутренние вызовы . Но почему он это делает?
Может кто-нибудь объяснить это более подробно?
__getitem__Использование в вашем примере не делает много смысла, но представьте себе , что вам нужно написать специальный list- или словарь-подобного класса, который должен работать с существующим кодом , который использует []. Это ситуация, когда __getitem__это полезно.