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

我有一个示例类:


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文档的解决方案,但我似乎没有找到任何东西。


开心每一天1111
浏览 58回答 1
1回答

慕标5832272

覆盖 和 魔术:__getitem____setitem__def __getitem__(self, idx):&nbsp; &nbsp; return self.itemArray[idx]def __setitem__(self, idx, val):&nbsp; &nbsp; self.itemArray[idx] = val
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python