我有一个功能的python模块:
def do_stuff(param1 = 'a'):
if type(param1) == int:
# enter python interpreter here
do_something()
else:
do_something_else()
Run Code Online (Sandbox Code Playgroud)
有没有办法进入命令行解释器,我有评论?所以如果我在python中运行以下内容:
>>> import my_module
>>> do_stuff(1)
Run Code Online (Sandbox Code Playgroud)
我得到了我在评论所在的范围和背景下的下一个提示do_stuff()?
Mat*_*son 137
如果你想要一个标准的交互式提示(而不是调试器,如prestomation所示),你可以这样做:
import code
code.interact(local=locals())
Run Code Online (Sandbox Code Playgroud)
请参阅:代码模块.
如果你安装了IPython,并且想要一个IPython shell,你可以为IPython> = 0.11执行此操作:
import IPython; IPython.embed()
Run Code Online (Sandbox Code Playgroud)
或旧版本:
from IPython.Shell import IPShellEmbed
ipshell = IPShellEmbed()
ipshell(local_ns=locals())
Run Code Online (Sandbox Code Playgroud)
pre*_*ion 58
插入
import pdb; pdb.set_trace()
Run Code Online (Sandbox Code Playgroud)
将在那时进入python调试器
见这里:http: //docs.python.org/library/pdb.html
Ron*_*xão 23
如果你想要一个默认的Python解释器,你可以这样做
import code
code.interact(local=dict(globals(), **locals()))
Run Code Online (Sandbox Code Playgroud)
这将允许访问本地和全局.
如果你想进入一个IPython解释器,IPShellEmbed解决方案已经过时了.目前有效的是:
from IPython import embed
embed()
Run Code Online (Sandbox Code Playgroud)
2023 年更新:breakpoint()此后包含在内py3.7,并将让您进入调试器(pdb默认情况下)。
如果您安装了其他调试器(ipdb仅举pdbpp几例),那么breakpoint()就会将您放入这些调试器中。
请参阅这些文档以获取更多信息:https ://docs.python.org/3/library/pdb.html
| 归档时间: |
|
| 查看次数: |
25466 次 |
| 最近记录: |