Ich habe die meiste Dokumentation von __getitem__
in den Python-Dokumenten und auch in stackoverflow durchlaufen, so dass dies keine doppelte Frage ist. Aber ich bin immer noch nicht in der Lage, die Bedeutung davon zu erfassen.Understanding __getitem__ Methode
Also alles, was ich verstehen kann ist, dass __getitem__
verwendet wird, um Anrufe wie self[key]
zu implementieren. Aber was nützt es?
Lets sagen, dass ich eine Python-Klasse haben auf diese 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"])
Dies gibt die Ergebnisse als erwartet. Aber warum zuerst __getitem__
verwenden? Ich habe auch gehört, dass Python intern __getitem__
aufruft. Aber warum macht es das?
Kann mir bitte jemand das genauer erklären?
Dies könnte für ein Beispiel von Interesse sein: [Wie ordnungsgemäß Unterklasse dict und override __getitem__ & __setitem__ ] (http://stackoverflow.com/questions/2390827/how-to-properly-subclass-dict-and-override-getitem-setitem) – roganjosh
Die '__getitem__' Verwendung in Ihrem Beispiel macht nicht viel Sinn, aber stell dir vor, du brauchst t o schreibe eine benutzerdefinierte Liste oder Dictionary-ähnliche Klasse, die mit existierendem Code arbeiten muss, der '[]' verwendet. Das ist eine Situation, in der "__getitem__" nützlich ist. –