我正在尝试对回溯进行一些精心的重新检查,并从未能与回溯一起返回更多(更好?)信息的对象中获取实际值。
案例场景在我导入并执行的函数中,如下所示:
def foo():
a = True
b = False
assert a == b
并被执行如下:
from foo import foo
def re_inspect():
try:
foo()
except Exception, e:
# re-inspect traceback and check `a` and `b`
当AssertionError
引发异常时,如果我尝试评估引发异常的行,我(当然)无法判断是什么a
或是b
(NameError
立即引发),因为我缺乏代码的上下文。
请注意,我无权访问,a
也无权访问,b
因为上面的代码是导入然后执行的。由于foo
不在当前名称空间中,我的问题依赖于从foo
上下文中获取正确的值。
什么是能够分辨什么a
和b
是什么的正确方法,以便您可以安全地说:“a is True and be is False”?