stopiteration相关内容

为什么 next 会引发“StopIteration",但“for"会正常返回?

在这段代码中,为什么使用 for 导致没有 StopIteration还是 for 循环捕获所有异常然后静默退出?在这种情况下,为什么我们会有多余的 return??或者是raise StopIteration 导致:return None? #!/usr/bin/python3.1默认倒计时(n):print("倒计时")当 n >= 9 时:产量 nn -= 1返回对于 x 倒计时(10): ..
发布时间:2022-01-10 14:18:51 Python

Python PEP479 更改生成器内部的 StopIteration 处理

有人能帮我理解 PEP479 是关于什么的吗?我正在阅读文档并且无法理解它. 摘要说: 此 PEP 提议对生成器进行更改:当在生成器内部引发 StopIteration 时,将其替换为 RuntimeError.(更准确地说,这发生在异常即将从生成器的堆栈帧中冒出时.) 例如,像这样的循环是否仍然有效? it = iter([1,2,3])尝试:我 = 下一个(它)为真:我 = ..
发布时间:2021-07-13 20:02:48 Python

收益如何捕获StopIteration异常?

示例函数为什么终止: def func(iterable): while True: val = next(iterable) yield val 但是如果我离开yield语句功能会引发StopIteration异常? 编辑:很抱歉误导你们.我知道什么是发电机以及如何使用它们.当然,当我说功能终止时,我并不是说急切地评估功能.我只是暗示当我使 ..
发布时间:2020-07-28 18:46:37 Python

为什么下一次提出'StopIteration',但是'for'是否正常回报?

在这段代码中,为什么使用'for'导致没有'StopIteration' 或'for'循环捕获所有异常然后默默退出? 在这种情况下,为什么我们有无关的“回报”?或者是 提高StopIteration 引起的:返回无? #!/ usr / bin / python3.1 def countdown(n): print(“倒计时”) 而n> = 9: 收益率n n - = 1 ..
发布时间:2018-11-15 21:17:45 Python

如何获取Python生成器返回None而不是StopIteration?

我正在使用生成器在列表中执行搜索,就像这个简单的例子: >>> a = [1,2,3,4] >>>> (i for i,v in enumerate(a)if v == 4).next() 3 (仅仅是为了示例,我使用了比上述更长的列表,并且条目比 int 我这样做,所以每次搜索时,整个列表不会被遍历) 现在,如果我改为 i == 666 ,它会返回一个 St ..
发布时间:2017-09-29 12:35:39 Python