ipython在不破坏目标文件中定义的全局变量的情况下运行

时间:2013-11-07 12:18:24

标签: python ipython

我想在我正在做的一些数字运算中定义一些全局变量,我正在逐步编写脚本并且不希望以前的结果继续被加载/重新计算。一种方法是将成熟代码拆分为单独的文件,并且只交换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

1 个答案:

答案 0 :(得分:7)

当您%run文件时,它通常在空白名称空间中启动,并且在完成后将其全局变量添加到交互式名称空间中。有一个-i标志会直接在交互式命名空间中运行它,因此它会看到你已定义的变量:

%run -i myscript.py