在Matlab中,当你运行一个脚本时,变量会留在内存中,你可以在shell中访问它们。我觉得这对调试和探索非常有用。我试图在Python中实现类似的效果。也许这甚至不可能。
例如,假设我有一个名为script.py
#!/usr/bin/env python
def foo(n):
return 2*n
x = 5
y = foo(5)
我希望能够运行它,并且可以在python shell中访问x
和y
。我尝试了>>> import script
,这样我就可以通过foo
访问script.foo()
,但我也希望能够访问x
和y
。
>>> from script import *
也无法完成任务。
如何让python将这些(在内存中)留在python shell中?
答案 0 :(得分:5)
实现这一目标的最简单方法是使用-i
标志(代表“交互式检查”)运行脚本。
python -i my_script.py
脚本将运行,然后将显示Python shell提示符>>>
,允许您与脚本创建的变量进行交互。
另一个不错的选择是安装IPython,这会为基本的Python shell添加一些额外的功能。在IPython会话中,您可以调用
%run my_script.py
获得相同的效果。 IPython应该可以在Linux发行版的存储库中使用。
答案 1 :(得分:1)
您可以使用pdb
模块在任何特定点输入调试器。例如:
import pdb
def foo(n):
pdb.set_trace() # <-- enters debugger here
return 2*n
x = 5
y = foo(5)