gpt4 book ai didi

python - 如何从 %run 执行的程序访问 IPython 中的变量

转载 作者:太空宇宙 更新时间:2023-11-03 17:53:52 25 4
gpt4 key购买 nike

我有一个这样的程序:

if __name__=="__main__":
foo = expensiveDataProcessClass(filepath)

y = foo.doStuff()
y = foo.doOtherStuff()

我正在测试一些东西,因为我使用 %run myprogram 命令在 ipython 中构建它。

运行后,由于它需要很长时间,我将用 ctrl+C 中断它并重写文件中的一些内容。

即使在我破坏它之后,IPython 仍然存储了 foo。

>type(foo) 
__main__.expensiveDataProcessClass

我从来不需要在 foo 中编辑任何内容,所以如果我可以更新我的程序以首先检查此 foo 变量是否存在,然后继续在 IPython 中使用它而不是执行整个创建过程,那就太酷了再次。

最佳答案

您可以首先检查变量是否存在,只有在不存在时才分配给它。示例:

if __name__=="__main__":
if not "foo" in globals()
foo = expensiveDataProcessClass(filepath)

但是,这实际上行不通(从保存 foo 赋值的意义上来说)。如果您阅读 IPython 的 doc关于 %run 魔法,它明确指出所执行的程序在其自己的命名空间中运行,并且只有在程序执行之后,其全局才会加载到 IPython 的交互式命名空间中。每次使用 %run 时,它始终不会从程序的角度定义 foo

关于python - 如何从 %run 执行的程序访问 IPython 中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28775830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com