如何在崩溃后从函数中检索值?例如。在函数完成/崩溃后如何找到a
的值。
>>> def a_is_3():
... a=3
... print 'a='+str(a)
...
>>> a_is_3()
a=3
>>> a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
我的真实案例包括创建并通过数十个模块传递的大量numpy数组。在代码错误之后,数组仍然占用内存,但我无法访问它们。
有没有办法检索函数崩溃时的变量是什么?我想避免必须添加调试代码并重新运行冗长的执行来捕获变量。这似乎是一个特别有用的故障排除技巧。
答案 0 :(得分:-1)
尝试使用global
>>> def a_is_3():
... global a
... a = 3
... print('a=' + str(a))
...
>>> a_is_3()
a=3
>>> a
3
>>>
这在交互式会话中非常有效 - 但是如果您稍后将其移至脚本,请确保您了解其含义。
显然,变量a
在全局范围内被覆盖,所以也要注意这一点。