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

标签 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

最佳答案

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

%run -i myscript.py

关于python - ipython 在不破坏目标文件中定义的全局变量的情况下运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19835739/

相关文章:

python - Pyramid 项目内的外部 iFrame。更新后没有刷新

Python:如何通过 BeautifulSoup 通过其中的字符串获取表格行?

python - 为什么我要使用 `async def` 而不是 `@asyncio.coroutine`?

python - 创建缩略图 Python Django

python - 有没有办法在 ipython qtconsole 中搜索文本?

python - 在 Jupyter 中使用浏览按钮上传文件并使用/保存它们

scipy - 将新的 ipython 笔记本上传到 wakari

python setup.py sdist 仅包括来自顶级模块的 .py 源

python - 带日期 slider 的 iPyWidget?

python-3.x - 使用 jupyter notebook 在文件夹中播放 mp3