2011-04-26 81 views
11

我有一个python特定的问题。作为参数,单个下划线_是什么意思? 我有一个函数hexdump(_)。这个_从来没有定义过,所以我猜它有一些特殊的价值,我找不到一个参考,告诉我网络上的含义。如果你能告诉我,我会很高兴。作为函数参数的Python下划线

与问候

回答

15

在Python壳,下划线(_)指外壳最后计算的表达式的结果:

>>> 2+3 
5 
>>> _ 
5 

还有_2_3等在IPython中,但不在原始的Python解释器中。据我所知,它在Python源代码中没有特别的含义,所以我猜它是在你的代码的某个地方定义的,如果它运行没有错误的话。

3

它在您编写的代码中没有特别的价值。它存储了最后一个表达式的你在交互式解释评估,是为了方便起见

+0

哪位翻译做到这一点? – sureshvv 2011-04-26 10:13:35

+0

您在提示符下输入“python”时获得的解释器,然后按回车键。尝试在'>>>'提示符下输入'3 + 4',然后按回车。然后尝试打印'_'的值。你会得到'7'(评估上一个表达式的结果)。 – 2011-04-26 10:15:50

-4

是它在你的代码中的含义,这个例子显示了结果:

>>> def f(x): 
    return (x, x + 2) 

>>> (i, j) = f(5) 
>>> i 
5 
>>> j 
7 
>>> (k, _) = f(7) 
>>> k 
7 

正如你所看到的,这允许你不要给返回值命名。但是你的情况不同,因为'_'被用作参数(标准python shell期望它作为变量:NameError: name '_' is not defined)。

+5

这不是“在你的代码中”,那是“在REPL中”。 – 2011-04-26 07:41:49

+0

但你确实给了一个返回值的名字,它的名字是'_' – Andrey 2011-04-26 08:26:14

+1

@Ignacio:你说的对,我就是这个意思@安德烈:的确,我意识到这是一个像其他任何名字一样的变量名,我真的认为这是一种语法糖。 – Emmanuel 2011-04-26 13:28:52