Python 分配给最后执行行的变量?

Python 分配给最后执行行的变量?,python,interpreter,Python,Interpreter,我刚刚在Python解释器中发现了一些奇怪的东西。让我告诉你: $ python Python 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53) [GCC 4.5.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> _ Traceback (most recent call last): File "<std

我刚刚在Python解释器中发现了一些奇怪的东西。让我告诉你:

$ python
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53) 
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> _
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name '_' is not defined
>>> 5 + 4
9
>>> _
9
>>> 'Hello world'
'Hello world'
>>> _
'Hello world'
>>> type(3.5)
<type 'float'>
>>> _
<type 'float'>
您可以在您的口译员中尝试这一点;这里没有诡计

最后一个执行行的结果是否被分配给名为0的变量

有人知道这件事吗?有关于它的文件吗?在哪种情况下它会有用?

看看这里

在交互式解释器中使用特殊标识符来 存储上次评估的结果;它存储在 内置模块

这种行为也可以在haskell的交互环境ghci中找到。在这里而不是使用它


例如,这不是什么大秘密,你可以在中找到它,但事实上,它并不广为人知。当您在命令行中执行大量工作时,它可能非常有用。

Per

有三种主要的用途。一个是您发现的实际用法,另两个是约定


有趣的。。。我从来不知道

在交互式解释器中进行探索时非常有用,当您忘记为某个返回的对象指定名称时,可以使用x=\ux获取对该对象的引用。请注意,在ipython中,您还返回了_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。问答网站也是如此。如果您问我在Python解释器中在哪里可以找到该特性的实现?或者类似的东西,它可能幸存了下来。好吧,我投票决定以完全相同的方式关闭,所以我不确定为什么我的名字会出现在“关闭不是一个真正的问题”的列表中。
Prelude> 2+2
4
Prelude> it
4