Verständnis __getitem__ - Methode

Ich habe durch die meisten der Dokumentation von __getitem__ in der Python-docs und auch bei stackoverflow so ist dies nicht eine doppelte Frage. Aber ich bin noch nicht in der Lage zu begreifen, die Bedeutung.

Also alles, was ich verstehen kann ist, dass __getitem__ die Umsetzung der Aufrufe, wie self[key]. Aber was nützt es?

Können sagen, ich habe eine python-Klasse in dieser Weise definiert:

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"])

Dieser liefert die Ergebnisse wie erwartet. Aber warum __getitem__ in den ersten Platz? Ich habe auch gehört, dass Python ruft __getitem__ intern. Aber warum tut er das?

Kann mir bitte jemand dies genauer erklären?

Dies kann von Interesse sein für ein Beispiel verwenden: Wie man richtig Unterklasse dict und überschreiben Sie getitem & setitem
Die __getitem__ verwenden, in Ihrem Beispiel nicht viel Sinn machen, aber stellen Sie sich vor, Sie schreiben eine benutzerdefinierte Liste - oder dictionary-wie Klasse, das hat die Arbeit mit den bestehenden code, der verwendet []. Das ist eine situation, wo __getitem__ nützlich ist.

InformationsquelleAutor user1867151 | 2017-04-26

Schreibe einen Kommentar