私は__getitem__
のドキュメントの大半をPythonのドキュメントとstackoverflowで使っていますので、これは重複する質問ではありません。しかし、私はまだそれの意味を理解することはできません。__getitem__メソッドの理解
私が理解できることは、self[key]
のような呼び出しを実装するために__getitem__
が使用されていることです。しかし、それの使用は何ですか?予想通り
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"])
これは結果を返します。
は、私は、このように定義されたPythonのクラスを考えてみましょう。しかし、最初に__getitem__
を使用するのはなぜですか?私はまた、Pythonが__getitem__
を内部的に呼び出していると聞いています。しかしそれはなぜそれをするのですか?
もっと詳しく説明できますか?
[dictを適切にサブクラス化して__getitem__&__setitem__を適切にサブクラス化するにはどうすればよいでしょうか。 ](http://stackoverflow.com/questions/2390827/how-to-properly-subclass-dict-and-override-getitem-setitem) – roganjosh
あなたの例で '__getitem__'を使用しても意味がありませんが、あなたがtを必要としていると想像してくださいoカスタムのリストや辞書のようなクラスを書く。これは '[]'を使う既存のコードで動作する必要がある。これは '__getitem__'が便利な状況です。 –