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 @user2357112name
TracebackType
基本上是内部traceback
类型的别名,在types模块中是set by raising an exception。实际的traceback
type可以在cpython代码中找到。