小编典典

如何在Python中覆盖[]运算符?

python

覆盖[]Python中的类的运算符(下标表示法)的方法名称是什么?


阅读 220

收藏
2021-01-20

共1个答案

小编典典

您需要使用__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__'
2021-01-20