Python生成器可以轻松保存和重新加载吗?

10 投票
2 回答
3579 浏览
提问于 2025-04-17 09:47

有没有办法把一个生成器的状态(包括局部变量等)保存成一个字符串,这样以后可以加载这个字符串,继续从上次的yield语句停下的地方接着执行?如果有的话,能不能分享一个有代码示例的网页链接?

2 个回答

7

Stackless Python可以处理生成器的序列化,也就是把生成器的状态保存起来,方便以后再用。你也可以试试PyPy 1.7,它也有很多无栈的特性,包括对生成器和函数的序列化。

代码片段:http://pastebin.com/p4RkVQkJ

你可以在这里下载Stackless Python 3.2和2.7.2:http://zope.stackless.com/download/sdocument_view

你可以在这里下载PyPy 1.7:http://pypy.org/download.html

撰写回答