您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在两次Python脚本运行之间将持久变量保存在内存中

在两次Python脚本运行之间将持久变量保存在内存中

您可以使用reload全局函数来重新执行主脚本的代码,从而实现类似目的。您将需要编写一个包装器脚本,该脚本会导入您的主脚本,向其询问要缓存的变量,然后在包装器脚本的模块范围内缓存该副本,然后在需要时(当您在stdin上按Enter或其他命令时) ),它会调用reload(yourscriptmodule)但这次将缓存的对象传递给它,以便您的脚本可以绕过昂贵的计算。这是一个简单的例子。

import sys
import mainscript

part1Cache = None
if __name__ == "__main__":
    while True:
        if not part1Cache:
            part1Cache = mainscript.part1()
        mainscript.part2(part1Cache)
        print "Press enter to re-run the script, CTRL-C to exit"
        sys.stdin.readline()
        reload(mainscript)

def part1():
    print "part1 expensive computation running"
    return "This was expensive to compute"

def part2(value):
    print "part2 running with %s" % value

wrapper.py运行时,您可以编辑mainscript.py,向part2功能添加代码,并能够针对预先计算的part1Cache运行新代码

python 2022/1/1 18:30:50 有548人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶