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

有没有办法使对象可下标?

有没有办法使对象可下标?

开心每一天1111 2022-09-27 09:30:11
我有一个示例类:class collection:    def __init__(self, itemArray):        self.itemArray = itemArray        self.max = len(itemArray)    def __iter__(self):        self.index = 0        return self    def __next__(self):        if self.index < self.max:            result = self.itemArray[self.index]            self.index += 1            return result        else:            raise StopIteration()我的目标是访问变量,而不必从类外部显式使用。我希望能够通过使对象可迭代来循环访问对象,这就是为什么我有 和 。self.itemArraycollection.itemArray__iter____next__我想模仿字符串类型采用的行为,即。stringVar = "randomTextString"stringVar[indexVal]尝试对对象执行此操作将不起作用,因为它会引发 TypeError,因为对象不可下标。我只需要有人给我指出正确的方向。我查看了python文档的解决方案,但我似乎没有找到任何东西。
查看完整描述

1 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

覆盖 和 魔术:__getitem____setitem__


def __getitem__(self, idx):

    return self.itemArray[idx]


def __setitem__(self, idx, val):

    self.itemArray[idx] = val


查看完整回答
反对 回复 2022-09-27
  • 1 回答
  • 0 关注
  • 57 浏览
慕课专栏
更多

添加回答

举报

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