在python程序退出并重新启动程序后是否可以恢复生成器功能?

时间:2014-10-22 02:40:26

标签: python-3.x

我想知道是否有可能python中的生成器函数/迭代器函数可以在键盘中断后暂停,并且每当程序重新启动生成器函数从它停止的地方恢复时?在解释这个解决方案时,请清楚简单。

1 个答案:

答案 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个单词,那么所有的值(单词)都会被生成并打印出来。我想我可以编写一些代码,以便在程序退出时将计数器变量存储在一个单独的文件中,每当程序重新启动时,它会从文件中提取最后一个计数器变量,以便输出恢复。希望这有效..