python - 如何覆盖 Python 中的 [] 运算符?

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

最佳答案

您需要使用 __getitem__ method .

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

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

如果您要设置值,则需要实现 __setitem__ method也一样,否则会发生这种情况:

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

https://stackoverflow.com/questions/1957780/

相关文章:

python - 在 Python 中,如何拆分字符串并保留分隔符?

linux - ld 找不到现有的库

linux - 查找不属于特定用户的文件

linux - 对制表符分隔的文件进行排序

linux - Linux中的缓冲区和高速缓存有什么区别?

python - 如何从生成器中只选择一项?

python - 类型错误 : method() takes 1 positional argume

linux - 如何将stderr和stdout重定向到脚本同一行中的不同文件?

python - 如何重命名 conda 环境?

python - 为什么 Pycharm 的检查员提示 "d = {}"?