有什么方法可以控制未处理的异常后最终进入哪个名称空间?

例如,在IPython提示符中,对具有以下内容的文件进行run myscript.py

def spam():
    ham = "ham"
    crash = 1/0
    eggs = "eggs"

if __name__ == '__main__':
    foo = "foo"
    spam()


它以零除崩溃,然后返回IPython提示符,现在在命名空间中使用foo,但没有ham。对于某些事后检查,我想返回功能spam()范围内的解释器(即ham可用,eggsfoo则不可用)。

我们可以使用pdb.set_trace()访问这些内容并重新运行代码,但是如果有捷径可以退后一帧,那就太好了。

最佳答案

您可以通过输入%pdb在ipython提示符下启用pdb的自动调用。

10-08 08:09