Python:sys.exc_info()缺少局部变量

时间:2010-06-08 22:21:52

标签: python

在Python中,我有代码捕获异常,如下所示:

try:
    <do stuff>
except:
    exc_info = sys.exc_info()

我遇到的问题是traceback对象(exc_info [2])在traceback对象中是非确定性地缺少局部变量。我知道这是因为我运行完全相同的代码,有时变量在tb.tb_frame.f_locals中,有时不在。全局变量在tb.tb_frame.f_globals中始终是正确的。

填充f_locals结构的内容是什么?什么可能导致局部变量字典有时是空的?

1 个答案:

答案 0 :(得分:0)

本地人的内容完全取决于该本地环境中的代码。例如:

if condition:
    foo='foo'
else:
    bar='bar'

如果condition==True,那么foo将在locals()bar则不会,否则bar将在locals()和{{1}不会。