Ho esaminato la maggior parte della documentazione nei documenti di __getitem__Python, ma non sono ancora in grado di comprenderne il significato.
Quindi tutto quello che posso capire è che __getitem__viene utilizzato per implementare chiamate come self[key]. Ma a cosa serve?
Diciamo che ho una classe python definita in questo modo:
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"])
Ciò restituisce i risultati come previsto. Ma perché usare __getitem__in primo luogo? Ho anche sentito che Python chiama __getitem__internamente. Ma perché lo fa?
Qualcuno può spiegarlo in modo più dettagliato?
__getitem__uso nel tuo esempio non ha molto senso, ma immagina di dover scrivere un elenco personalizzato o una classe simile a un dizionario, che deve funzionare con il codice esistente che utilizza []. Questa è una situazione in cui __getitem__è utile.