如何在函数崩溃后检索值?

时间:2015-04-30 05:58:08

标签: python numpy

如何在崩溃后从函数中检索值?例如。在函数完成/崩溃后如何找到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数组。在代码错误之后,数组仍然占用内存,但我无法访问它们。

有没有办法检索函数崩溃时的变量是什么?我想避免必须添加调试代码并重新运行冗长的执行来捕获变量。这似乎是一个特别有用的故障排除技巧。

1 个答案:

答案 0 :(得分:-1)

尝试使用global

>>> def a_is_3():
...     global a
...     a = 3
...     print('a=' + str(a))
...
>>> a_is_3()
a=3
>>> a
3
>>>

这在交互式会话中非常有效 - 但是如果您稍后将其移至脚本,请确保您了解其含义。

显然,变量a在全局范围内被覆盖,所以也要注意这一点。