有人可以帮助我理解PEP479是关于什么的吗?我正在阅读文档,但无法理解。
摘要说:
这个PEP提议改变生成器:当StopIteration在生成器内部被抛出时,用RuntimeError来替代它。(更准确地说,当异常即将从生成器的堆栈帧中冒出来时,会发生这种情况。)
所以例如,像这样的循环还能正常工作吗?
it = iter([1,2,3])
try:
i = next(it)
while True:
i = next(it)
except StopIteration:
pass
还是说,如果我有这样一个生成器定义:
def gen():
yield from range(5)
raise StopIteration
StopIteration
将被替换为 RuntimeError
?
如果有人能够解释一下这件事情,我会非常感激。
StopAsyncIteration
的内容时偶然发现了这个问题。现在一切都清楚了。非常感谢。 - Jacques Gaudin