我最近发现了非常有用的 Python ‘-i’标志
-i : inspect interactively after running script, (also PYTHONINSPECT=x)
and force prompts, even if stdin does not appear to be a terminal
这对于检查全局范围内的对象非常有用,但是如果在函数调用中引发异常,并且我想检查函数的局部变量,会发生什么情况?当然,我对第一次引发异常的范围很感兴趣,有什么办法可以找到它吗?
请您参考如下方法:
在交互式提示符下,立即键入
>>> import pdb
>>> pdb.pm()
pdb.pm() 是“事后”调试器。它会将您置于引发异常的范围内,然后您可以使用通常的 pdb 命令。
我一直都在用。它是标准库的一部分(不需要 ipython)并且不需要将调试命令编辑到您的源代码中。
唯一的诀窍就是记得马上去做;如果您首先键入任何其他命令,您将失去发生异常的范围。
