有什么方法可以控制在发生未处理的异常后最终进入哪个命名空间吗?
例如,在 IPython 提示符中,在包含以下内容的文件上运行 myscript.py:
def spam():
ham = "ham"
crash = 1/0
eggs = "eggs"
if __name__ == '__main__':
foo = "foo"
spam()
它因零除而崩溃,并返回到 IPython 提示符,foo
现在位于命名空间中,但没有 ham
。对于一些事后检查,我想返回到函数 spam()
范围内的解释器(即 ham
可用,eggs
> 和 foo
不会)。
我们可以使用 pdb.set_trace()
访问这些内容并重新运行代码,但如果有一个后退一帧的快捷方式那就太好了。
最佳答案
您可以通过在 ipython 提示符下键入 %pdb
来启用 pdb 的自动调用。
关于Python:如何在未处理的异常后控制命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6338889/