__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 Klasse x[i]> ist ungefähr gleichbedeutend mit type(x).__getitem__(x, i)> .
Die Methode __getitem__(self, key)> Definiert das Verhalten beim Zugriff auf ein Element mithilfe der Notation self[key]> . Dies ist auch Teil der veränderlichen und unveränderlichen Containerprotokolle.
Beispiel:
# 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 die test[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. Der test[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.