我有一个示例类: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
添加回答
举报
0/150
提交
取消