Utiliser getitem en Python

Fariba Laiq 14 avril 2022
Utiliser getitem en Python

__getitem__() est une méthode magique en Python. Les méthodes magiques sont les méthodes qui ne sont pas directement invoquées par le programmeur lors de l’écriture d’un code.

Ces méthodes sont des appels système qui sont invoqués automatiquement sur le serveur principal. La différence entre les méthodes magiques et normales est que les doubles traits de soulignement entourent les méthodes magiques.

C’est pourquoi elles sont aussi appelées méthodes dunder. Dunder signifie ici des doubles traits de soulignement. Les méthodes magiques sont également utilisées pour la surcharge des opérateurs.

L’utilisation de __getitem__() dans une classe permet aux instances d’une classe d’utiliser l’opérateur d’indexation [ ] avec les variables de référence d’une classe pour accéder à la valeur d’une liste, d’un dictionnaire ou d’un tuple à partir d’un index spécifique.

Cette méthode est automatiquement invoquée lorsque nous utilisons l’opérateur d’indexation avec la variable de référence de la classe. Dans le code suivant, nous avons créé une classe Person, et dans le constructeur de la classe, nous avons passé la liste des noms lors de la création d’un objet.

Nous avons explicitement défini la méthode __getitem__(), qui prend l’index de la liste comme argument et renvoie le nom associé à cet index. Ici dans le code, nous n’avons pas explicitement appelé la méthode __getitem__().

Cette méthode est automatiquement appelée lors de la tentative d’accès à la valeur d’un certain index de liste à l’aide de l’opérateur [ ]. Cette méthode est invoquée implicitement comme p1.__getitem__(1) quand on écrit p1[1] pour accéder aux valeurs présentes à l’index 1 de la liste.

Exemple de code :

# python 3.x
class Person:
    def __init__(self, names):
        self.names = names

    def __getitem__(self, index):
        return self.names[index]


p1 = Person(["Jhon", "Kevin"])
print(p1[1])

Production :

# python 3.x
Kevin
Auteur: Fariba Laiq
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

Article connexe - Python Class