为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

翻翻过去那场雪 2019-11-26 11:13:43
覆盖[]Python中的类的运算符(下标表示法)的方法名称是什么?
查看完整描述

3 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

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


查看完整回答
反对 回复 2019-11-26
  • 3 回答
  • 0 关注
  • 386 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信