logo

__getitem__() en Python

En Python, tout est objet. Il existe de nombreuses méthodes d’appel système « ordinaires » sur ces objets en arrière-plan qui ne sont pas visibles pour le programmeur. Voici venir ce qu'on appelle méthodes magiques . Les méthodes magiques en Python sont des méthodes spéciales qui sont invoquées lorsque nous exécutons un code Python ordinaire. Pour les différencier des fonctions normales, ils sont entourés de doubles traits de soulignement.

Si l’on veut ajouter a et b, on écrit la syntaxe suivante :



 c = a + b>

En interne, il s'appelle ainsi :

si sinon sinon si java
 c = a.__add__(b)>

__getitem__()>est une méthode magique en Python qui, lorsqu'elle est utilisée dans une classe, permet à ses instances d'utiliser le[]>(indexeur). Supposons que x soit une instance de cette classe, alorsx[i]>est à peu près équivalent àtype(x).__getitem__(x, i)>.

La méthode__getitem__(self, key)>définit le comportement lors de l'accès à un élément, en utilisant la notationself[key]>. Cela fait également partie des protocoles de conteneur mutables et immuables.



Exemple:

arbre binaire en Java






# Code to demonstrate use> # of __getitem__() in python> > > class> Test(>object>):> > ># This function prints the type> ># of the object passed as well> ># as the object item> >def> __getitem__(>self>, items):> >print> (>type>(items), items)> > # Driver code> test>=> Test()> test[>5>]> test[>5>:>65>:>5>]> test[>'techcodeview.com'>]> test[>1>,>'x'>,>10.0>]> test[>'a'>:>'z'>:>2>]> test[>object>()]>

définir l'intervalle javascript

>

>

modifier le fichier Linux

Sortir:

 5 slice(5, 65, 5) techcodeview.com (1, 'x', 10.0) slice('a', 'z', 2)>

Contrairement à d’autres langages, Python vous permet essentiellement de transmettre n’importe quel objet à l’indexeur. Vous pourriez être surpris que letest[1, 'x', 10.0]>analyse réellement. Pour l’interpréteur Python, cette expression équivaut à ceci :test.__getitem__((1, 'x', 10.0))>. Comme vous pouvez le voir, la partie 1, 'x', 10.0 est implicitement analysée comme un tuple. Letest[5:65:5]>L’expression utilise la syntaxe slice de Python. C'est équivalent à cette expression : test[slice(5, 65, 5)].

Le__getitem__>La méthode magique est généralement utilisée pour l'indexation de listes, la recherche dans un dictionnaire ou l'accès à des plages de valeurs. Compte tenu de sa polyvalence, il s’agit probablement de l’une des méthodes magiques les plus sous-utilisées de Python.