import sys

try:
    raise Exception('foobar')
except:
    info = sys.exc_info()

print(type(e[2])) # <class 'traceback'>
help(traceback) # NameError: name 'traceback' is not defined

python用于异常报告的回溯对象的具体类型是什么?
sys.exc_info上的文档提到了参考手册,但是虽然我找到了很多关于如何操作回溯实例的信息,但我希望能够访问类型(类)本身。

最佳答案

traceback对象是类型模块下存在的TracebackType的实例。
types.TracebackType
traceback对象的类型,如在sys.exc_info()[2]中找到的。

>>> from types import TracebackType
>>> isinstance(info[2], TracebackType)
True
>>> TracebackType
<class 'traceback'>

aspointed out by @user2357112nameTracebackType基本上是内部traceback类型的别名,在types模块中是set by raising an exception。实际的traceback type可以在cpython代码中找到。

09-27 18:53