如何在当前命名空间中获取Python交互式控制台?
我想在我的Python代码运行到一半的时候,启动一个Python的交互式控制台(REPL),可以用类似code.interact()的方式来实现。但是,code.interact()启动的控制台看不到当前命名空间里的变量。我该怎么做呢?
比如说,我有一个变量:
mystring="hello"
然后我调用:
code.interact()
接着在启动的交互式控制台里,我应该能输入mystring,然后得到"hello"的结果。这样做可能吗?我需要把code.interact()的"local"参数设置成什么吗?这个参数应该设置成什么?我应该怎么调用它呢?
5 个回答
2
另一种方法是启动调试器,然后运行 interact
:
import pdb
pdb.set_trace()
接着在调试器中:
(Pdb) help interact
interact
Start an interactive interpreter whose global namespace
contains all the (global and local) names found in the current scope.
(Pdb) interact
*interactive*
>>>
4
为了调试,我通常使用这个
from pdb import set_trace; set_trace()
这可能会有帮助
28
试试这个:
code.interact(local=locals())