我在 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 异常。无论代码使用我的迭代器,我是否需要做任何特别的事情来传播这个异常?或者这会自动发生,导致我的迭代器正确终止。