我有一個(gè)示例類: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()我的目標(biāo)是訪問(wèn)變量,而不必從類外部顯式使用。我希望能夠通過(guò)使對(duì)象可迭代來(lái)循環(huán)訪問(wèn)對(duì)象,這就是為什么我有 和 。self.itemArraycollection.itemArray__iter____next__我想模仿字符串類型采用的行為,即。stringVar = "randomTextString"stringVar[indexVal]嘗試對(duì)對(duì)象執(zhí)行此操作將不起作用,因?yàn)樗鼤?huì)引發(fā) TypeError,因?yàn)閷?duì)象不可下標(biāo)。我只需要有人給我指出正確的方向。我查看了python文檔的解決方案,但我似乎沒有找到任何東西。
1 回答

慕標(biāo)5832272
TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊
覆蓋 和 魔術(shù):__getitem____setitem__
def __getitem__(self, idx):
return self.itemArray[idx]
def __setitem__(self, idx, val):
self.itemArray[idx] = val
添加回答
舉報(bào)
0/150
提交
取消