我想知道是否有可能python中的生成器函数/迭代器函数可以在键盘中断后暂停,并且每当程序重新启动生成器函数从它停止的地方恢复时?在解释这个解决方案时,请清楚简单。
答案 0 :(得分:0)
在读取了发电机和'yield'之后。我意识到发电机只输出一个值,丢弃它并输出另一个值等等...... 在python退出后,他试图找到一种方法来恢复以下函数的输出
counter=0
def product(*args, repeat=1):
global counter
pools = [tuple(pool) for pool in args] * repeat
#yield pools
result = [[]]
for pool in pools:
result = [x+[y] for x in result for y in pool]
for prod in result:
counter=counter+1
if counter>11:
yield tuple(prod)
def product_function():
for i in product('abc',repeat=3):
print(i)
print(counter)
product_function()
我最终决定放入一个名为counter的小变量,一旦计数器大于第11个单词,那么所有的值(单词)都会被生成并打印出来。我想我可以编写一些代码,以便在程序退出时将计数器变量存储在一个单独的文件中,每当程序重新启动时,它会从文件中提取最后一个计数器变量,以便输出恢复。希望这有效..