追溯性地将函数的输出分配给python中的变量

时间:2016-05-10 08:04:31

标签: python function variable-assignment

我运行了一个函数f(),这个函数花了10多个小时才完成。不幸的是,我错误地指出了它的输出,即foo = f()。

我还更改了下划线的值'_',变量。

我想知道,f()的结果是否还在内存中?有没有办法访问它们?

1 个答案:

答案 0 :(得分:0)

我假设您使用的是Python交互式解释器,并且您实际上并未使用_来回应它的价值!如果你这样做,那么函数调用的输出就会丢失。

如果你没有回应任何其他东西,但之前已经绑定_,那么这就是一个新的全局阴影,内置的交互式解释器捕获了你的函数输出。

使用del _删除它并显示内置功能,它仍将保存您的功能输出:

>>> del _
>>> output = _

这是有效的,因为无论是否存在全局_,内置_名称始终绑定到最后一个表达式结果:

>>> _ = 'foo'
>>> 1 + 1  # an expensive operation!
2
>>> del _
>>> _
2

如果您使用的是IPython,则可以按输出编号访问所有结果;如果结果与前面的Out[42]一起回显,请使用_42来访问缓存的结果。