我想在我正在做的一些数字运算工作中定义一些全局变量,我正在逐步编写脚本并且不希望之前的结果继续被加载/重新计算。一种方法是将成熟的代码拆分到一个单独的文件中,并且只有 python run
以交互方式生成新代码。但是我只想在一个文件中完成它以提高开发速度。
我假设文件中定义的全局变量会在 run
调用之间持续存在,但事实并非如此。
所以我的脚本有以下代码块:
if globals().has_key('all_post_freq') != True:
print "creating all post freq var"
global all_post_freq
all_post_freq = all_post_freq_("pickle/all_post_freq.pickle")
如何在 ipython run
调用之间保留 all_post_freq
编辑
好的,我已经将内容拆分成文件,但我知道必须有一种方法可以完成我需要做的事情 :D
最佳答案
当您%run
一个文件时,它通常在一个空白的命名空间中启动,它的全局变量在它完成时被添加到交互式命名空间中。有一个 -i
标志将直接在交互式命名空间中运行它,因此它会看到您已经定义的变量:
%run -i myscript.py
关于python - ipython 在不破坏目标文件中定义的全局变量的情况下运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19835739/