Python Tracebacks:'在程序控制下模仿解释器'+'

时间:2017-07-12 17:07:42

标签: python python-3.x traceback

以下内容来自P3 documentation

“[traceback]模块提供了一个标准接口来提取,格式化和打印Python程序的堆栈跟踪。它完全模仿 Python 解释器的行为打印堆栈跟踪。当您想要在程序控制下打印堆栈跟踪时,这很有用,例如在解释器周围的“包装器”中。“

1)为什么回溯模块“模仿”解释器?

2)为什么这有用“在程序控制下”(这句话是什么意思)?

1 个答案:

答案 0 :(得分:1)

根据我的理解,通过模仿解释器,意味着异常报告的格式和措辞与解释器执行的格式和措辞完全相似。就是这样:

import traceback
try:
    raise AttributeError("Foo")
except:
    traceback.print_exc()

显示与此相同的消息:

raise AttributeError("Foo")

是:

Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
AttributeError: Foo

至于你的第二个问题,你可以在模块文档的examples section中看到一个例子。第一个例子说明了简单的&#34;包装&#34;解释器(在inputexec的帮助下)并使用print_exc(模仿解释器)进行报告。