执行后将变量保留在内存中

mrK*_*ley 0 python shell

在Matlab中,当您运行脚本时,变量会在内存中保留,并且您可以在shell中进行访问.我觉得这对调试和探索非常有用.我试图在Python中实现类似的效果.也许这甚至不可能.

例如,假设我有一个名为的文件 script.py

#!/usr/bin/env python

def foo(n):
    return 2*n

x = 5
y = foo(5)
Run Code Online (Sandbox Code Playgroud)

我想能够运行这一点,并有访问xy在Python外壳.我想>>> import script这使我获得foo通过script.foo(),但我想访问xy太.

>>> from script import * 也没有完成工作.

我如何让python将这些(在内存中)留在python shell中?

Mar*_*ius 5

实现这一目标的最简单方法是使用-i标志(代表"交互式检查")运行脚本.

python -i my_script.py
Run Code Online (Sandbox Code Playgroud)

该脚本将运行,然后>>>将显示Python shell提示符,允许您与脚本创建的变量进行交互.

另一个不错的选择是安装IPython,它为基本的Python shell添加了一些额外的功能.在IPython会话中,您可以致电

%run my_script.py
Run Code Online (Sandbox Code Playgroud)

获得相同的效果.IPython应该在Linux发行版的存储库中可用.