1. ホーム
  2. パイソン

[解決済み】Pythonで[]演算子をオーバーライドする方法は?

2022-03-31 23:48:59

質問

をオーバーライドするメソッド名を教えてください。 [] 演算子(添え字表記)を使って、Pythonのクラスを表現できますか?

どのように解決するのですか?

を使用する必要があります。 __getitem__ メソッド .

class MyClass:
    def __getitem__(self, key):
        return key * 2

myobj = MyClass()
myobj[3] #Output: 6

また、値を設定するのであれば __setitem__ メソッド を使用しないと、このようなことが起こります。

>>> myobj[5] = 1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: MyClass instance has no attribute '__setitem__'