【发布时间】:2022-02-13 01:50:30
【问题描述】:
在这段代码中,我的类名 Iter 包含两个 dunder 方法 __iter__ 和 __next__。在__iter__method 中,我将self.current 设置为零并返回self。在下一个方法中,我增加
self.current += 1。当它达到 10 时,我希望它引发 StopIteration 异常。
class Iter:
def __iter__(self):
self.current = 0
return self
def __next__(self):
self.current += 1
if self.current == 10:
raise StopIteration
return self.current
it = Iter()
for i in it:
print(i)
【问题讨论】:
-
for-loops 处理StopIteration。如果您想进一步传播它,请改用next()。 -
我相信 StopIteration 只是告诉 for 循环它到达了结尾,它应该退出它。将其更改为
ValueError(例如)实际上确实显示了回溯
标签: python iteration stopiteration