当迭代器最后一次用完时,返回它的好方法是什么。我用的是旗子,但这很难看:
class Example():
def __iter__(self):
self.lst = [1,2,3]
self.stop = False # <-- ugly
return self
def next(self):
if self.stop: # <-- ugly
raise StopIteration
if len(self.lst) == 0:
self.stop = True
return "one last time"
return self.lst.pop()
背景:我正在从外部源获取未知数量的字符串,并将它们进一步发送到调用方。当进程结束时,我想发出一个字符串“x records processed”。我无法控制调用代码,所以这必须在迭代器中完成。
目前没有回答
相关问题 更多 >
编程相关推荐