Python生成器可以轻松保存和重新加载吗?
有没有办法把一个生成器的状态(包括局部变量等)保存成一个字符串,这样以后可以加载这个字符串,继续从上次的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