Jython保存程序状态

时间:2017-03-07 12:41:59

标签: java python jython

是否可以保存Jython程序的状态?我希望能够保存所有已定义的变量和程序所在的当前行,重新启动整个程序,然后从那里继续。我查看了Pickling,但这只是序列化了一个类,而不是整个状态。我认为我需要的是Continuation,就像在无堆栈的Python中一样。我可以在Jython中做到吗?

我的Python文件如下所示:

def main()
    engine.blockingMethod()
    testVar = engine.blockingMethodReturn()
    if(testVar == "a"):
        methodA()
    else:
        methodB()
def methodA ()
    engine.blockingMethod()
def methodB()
    engine.blockingMethod()

我的程序需要能够在任何这些方法之后退出。由于if语句,我在加载文件时不能只读取所有这些内容。我不知道如何采取相应行动,因为当用户想要退出时,我的程序没有完全运行。我这样运行:

pyScript.start();
System.out.println("Done")

在一个单独的Thread中,因为我从Python文件中调用的方法大部分都是阻塞的。我可以保存以前的操作,并运行该文件,直到我到达保存的历史记录的最后一个,但由于if语句,这不起作用。所以当玩家按下Exit按钮时,我需要保存状态并终止线程。这样的事情:https://www.renpy.org/doc/html/save_load_rollback.html

2 个答案:

答案 0 :(得分:0)

您当然可以保存变量的值。这是文件的整个目的。

您无法轻松保存所在的代码行。程序应该在执行中的已知点退出,以便在重新启动时自动知道如何继续。

答案 1 :(得分:0)

可能有一种更简单的方法,但我最终制作了自己的Python解析器