我运行了一个函数f(),这个函数花了10多个小时才完成。不幸的是,我错误地指出了它的输出,即foo = f()。
我还更改了下划线的值'_',变量。
我想知道,f()的结果是否还在内存中?有没有办法访问它们?
答案 0 :(得分:0)
我假设您使用的是Python交互式解释器,并且您实际上并未使用_
来回应它的价值!如果你这样做,那么函数调用的输出就会丢失。
如果你没有回应任何其他东西,但之前已经绑定_
,那么这就是一个新的全局阴影,内置的交互式解释器捕获了你的函数输出。
使用del _
删除它并显示内置功能,它仍将保存您的功能输出:
>>> del _
>>> output = _
这是有效的,因为无论是否存在全局_
,内置_
名称始终绑定到最后一个表达式结果:
>>> _ = 'foo'
>>> 1 + 1 # an expensive operation!
2
>>> del _
>>> _
2
如果您使用的是IPython,则可以按输出编号访问所有结果;如果结果与前面的Out[42]
一起回显,请使用_42
来访问缓存的结果。