Python:如何在未处理的异常后控制命名空间?

标签 python debugging namespaces ipython

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

例如,在 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/

相关文章:

python - Redis 与 Twemproxy 对比 memcached

c# - DebuggerStepThrough、DebuggerHidden 在异步等待方法中不起作用

multithreading - 调试时显示线程名称 - delphi

angular - 通过组件属性为您的 css 类添加动态命名空间对性能/加载是否不利?

ios - 模块 'Error' 中没有名为 'Foundation' 的类型

python - 获取唯一行值的最大日期

python - 使用 selenium 在 python 中处理多个选项卡时出现 IndexError

c++ - 在 C++ 中将静态类转为命名空间时如何处理私有(private)成员函数?

python - 使用 Gensim 获取八卦的问题

objective-c - 你如何像 visual studio 立即窗口一样在 xcode 中观察或评估表达式?