我有一個示例類: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
提交
取消