Я переглянув більшу частину документації __getitem__в документах Python, але все ще не можу зрозуміти сенс цього.
Тому я можу зрозуміти лише те, що __getitem__використовується для здійснення подібних дзвінків self[key]. Але в чому це користь?
Скажімо, у мене клас визначений таким чином:
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__корисна.