logo

__getitem__() in Python

In Python ist alles ein Objekt. Es gibt viele „normale“ Systemaufrufmethoden für diese Objekte hinter den Kulissen, die für den Programmierer nicht sichtbar sind. Hier kommen die sogenannten magische Methoden . Magische Methoden in Python sind spezielle Methoden, die aufgerufen werden, wenn wir normalen Python-Code ausführen. Um sie von normalen Funktionen zu unterscheiden, sind sie von doppelten Unterstrichen umgeben.

Wenn wir a und b hinzufügen möchten, schreiben wir die folgende Syntax:



 c = a + b>

Intern heißt es:

 c = a.__add__(b)>

__getitem__()>ist eine magische Methode in Python, die bei Verwendung in einer Klasse deren Instanzen die Verwendung ermöglicht[]>(Indexer-)Operatoren. Angenommen, x ist eine Instanz dieser Klassex[i]>ist ungefähr gleichbedeutend mittype(x).__getitem__(x, i)>.

Die Methode__getitem__(self, key)>Definiert das Verhalten beim Zugriff auf ein Element mithilfe der Notationself[key]>. Dies ist auch Teil der veränderlichen und unveränderlichen Containerprotokolle.



Beispiel:

Was ist das Internet






# 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>()]>

>

>

Ausgabe:

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

Im Gegensatz zu einigen anderen Sprachen können Sie in Python grundsätzlich jedes Objekt an den Indexer übergeben. Sie werden vielleicht überrascht sein, dass dietest[1, 'x', 10.0]>tatsächlich analysiert. Für den Python-Interpreter entspricht dieser Ausdruck folgendem:test.__getitem__((1, 'x', 10.0))>. Wie Sie sehen können, wird der Teil 1, „x“, 10.0 implizit als Tupel geparst. Dertest[5:65:5]>Der Ausdruck nutzt die Slice-Syntax von Python. Es entspricht diesem Ausdruck: test[slice(5, 65, 5)].

Der__getitem__>Die Magic-Methode wird normalerweise für die Listenindizierung, die Wörterbuchsuche oder den Zugriff auf Wertebereiche verwendet. Wenn man bedenkt, wie vielseitig es ist, ist es wahrscheinlich eine der am wenigsten genutzten magischen Methoden von Python.