J'ai parcouru la plupart de la documentation de __getitem__la documentation Python, mais je suis toujours incapable d'en saisir la signification.
Donc, tout ce que je peux comprendre, c'est qu'il __getitem__est utilisé pour implémenter des appels comme self[key]. Mais à quoi cela sert-il?
Disons que j'ai une classe python définie de cette manière:
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"])
Cela renvoie les résultats comme prévu. Mais pourquoi l'utiliser __getitem__en premier lieu? J'ai également entendu dire que Python appelle en __getitem__interne. Mais pourquoi le fait-il?
Quelqu'un peut-il expliquer cela plus en détail?
__getitem__utilisation dans votre exemple n'a pas beaucoup de sens, mais imaginez que vous devez écrire une classe personnalisée de type liste ou dictionnaire, qui doit fonctionner avec le code existant qui utilise []. C'est une situation où __getitem__c'est utile.