我正在使用 pdb 来检查调用过的脚本run -d
在 ipython 会话中。
能够绘制一些变量会很有用,但我需要在主 ipython 环境中使用它们才能做到这一点。
所以我正在寻找的是某种方法,可以在退出 pdb 后使变量在主交互式会话中可用。如果您在最顶层的框架中设置一个变量,它似乎确实存在于 ipython 会话中,但这对于下面的任何框架都不起作用。
就像是export
在下面的:
ipdb> myvar = [1,2,3]
ipdb> p myvar
[1, 2, 3]
ipdb> export myvar
ipdb> q
In [66]: myvar
Out[66]: [1, 2, 3]
根据 ipython 的docs http://ipython.scipy.org/moin/Documentation,还有一个run?
来自 ipython 提示符的命令,
执行后,IPython
交互式命名空间获取
使用程序中定义的所有变量进行更新(除了__name__
和系统.argv)
“在程序中定义”(术语的使用有点草率),并不意味着“在任何嵌套函数中找到的任何地方”——它的意思是“在globals()
你所在的脚本/模块run
宁。如果你在任何类型的筑巢中,globals()['myvar'] = [1,2,3]
应该仍然可以正常工作,就像你所希望的那样export
如果它存在的话就会。
Edit:如果您位于不同的模块中,则需要在原始模块的全局变量中设置名称 - 在import sys
如果需要的话,sys.modules["originalmodule"].myvar = [1, 2, 3]
会做你想做的事。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)