Python 对象在重新执行时的持久性

发布于 2024-11-08 10:55:14 字数 179 浏览 0 评论 0原文

有什么方法可以在重新执行正在运行的脚本时保留对象吗?如果我希望正在运行的脚本重新执行自身以获取任何代码更改,(os.exec*) 有没有办法在重新执行后保留对象以供访问?我可以使用 pickled ascii 数据设置环境变量,或者将该数据写入管道并在重新执行后重新读取它,但这看起来不优雅或像黑客。即使这样做,也不是所有的东西都能很好地腌制。

Is where a way to persist objects over re-execs of a running script? If I want a running script to re execute itself to pick up any code changes, (os.exec*) is there a way to persist the objects for access after the re-execution? I could set environment variables with pickled ascii data, or write that data to a pipe and re-read it after the re-execution, but that seems inelegant or like a hack. Even if doing that, not all items pickle well.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

彡翼 2024-11-15 10:55:14

如果将代码放入模块中,则可以使用 reload()标准函数加载新版本的代码。您的主模块可能如下所示:

import mymodule

while mymodule.go():
    reload(mymodule)

每当您想要重新加载模块代码时,请从 go() 返回 True。当你想退出时,返回False

If you put your code in a module, you can use the reload() standard function to load the new version of the code. Your main module could look like this:

import mymodule

while mymodule.go():
    reload(mymodule)

Whenever you want to reload your module code, return True from go(). When you want to exit, return False.

后知后觉 2024-11-15 10:55:14

查看搁置

import shelve

db = shelve.open("database", "c")
db["one"] = 1
db["two"] = 2
db["three"] = 3
db.close()

Check out shelve.

import shelve

db = shelve.open("database", "c")
db["one"] = 1
db["two"] = 2
db["three"] = 3
db.close()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文