可能重复:
如何克隆 Python 生成器对象?
假设我有一个生成器“stuff_to_try”,我可以一个一个地尝试它们,但是如果我有一个想要通过生成器的方法并且该方法是递归的,我想让每个递归都得到一个新的生成器,从第一次产生而不是最后一次递归停止的地方。
def solve(something):
if exit_condition(something):
return
next_to_try = stuff_to_try.next()
while not if_works(next_to_try):
next_to_try = stuff_to_try.next()
solve(do_something(something))
当然我可以在递归函数中定义 stuff_to_try 但有更好的方法吗?是否有等效的 stuff_to_try.clone().reset() 或其他东西?