在Python交互式解释器中,有没有办法引用最后一个命令的结果?

时间:2013-11-30 19:20:31

标签: python python-interactive

当我使用Python交互式解释器时,我经常发现自己这样做:

>>> a = "starting value"
>>> foo(a)
"something I don't want"
>>> bar(a)
"what I wanted"
>>> a = bar(a)

有没有办法做到:

>>> bar(a)
"what I wanted"
>>> a = thing_from_before

也就是说,有没有办法引用我运行的最后一个命令打印出来的变量?

2 个答案:

答案 0 :(得分:7)

是的,它位于变量_

>>> 2+2
4
>>> _
4

请注意,这不是" 打印",它是前一个表达式的值。因此,如果bar(a)仅打印某些内容并且未返回该值,_将无法帮助您。

答案 1 :(得分:0)

如果您使用的是IPython而不是vanilla解释器,则可以使用InOut词典来引用过去的任意结果:

In [1]: 2 + 2
Out[1]: 4

In [2]: Out[1] + 2
Out[2]: 6

In [2]: Out[1] + 4
Out[2]: 8