gpt4 book ai didi

python - StopIteration 异常是否会自动通过我的迭代器向上传播?

转载 作者:行者123 更新时间:2023-11-30 23:54:38 26 4
gpt4 key购买 nike

我正在 Python 中实现一个迭代器,它包装另一个迭代器,并在传递迭代器的输出之前对其输出进行后处理。下面是一个简单的示例,它采用一个返回字符串的迭代器,并在每个字符串前面添加 FILTERED BY MYITER::

class MyIter(object):
"""A filter for an iterator that returns strings."""
def __init__(self, string_iterator):
self.inner_iterator = string_iterator
def __iter__(self):
return self
def next(self):
return "FILTERED BY MYITER: " + self.inner_iterator.next()

当内部迭代器完成时,它将引发 StopIteration 异常。我是否需要执行任何特殊操作来将此异常传播到使用 my 迭代器的任何代码?或者这会自动发生,导致我的迭代器正确终止。

最佳答案

您不必执行任何特殊操作 - StopIteration 异常将自动传播。

此外 - 您可能想了解 yield 关键字 - 它大大简化了生成器/迭代器的创建。

关于python - StopIteration 异常是否会自动通过我的迭代器向上传播?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5039087/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com