6

我对 Python 有点陌生,所以我试图阅读现有代码。不过,我对此的语法有点困惑。

例如:

rlist, _, _ = select.select(sockets, [], [])

我知道这select.select()需要 3 个列表(我假设[]只是指空列表),但是_用于表示某种占位符吗?

4

5 回答 5

11

这只是一个变量的名称!通常人们使用_临时或无关紧要的变量。

正如其他人所说,_是翻译库 gettext 的常见别名。如果您看到它被称为函数,您可以识别它何时被用作 gettext,例如。_('Hello, world!').

Protip:在 python 控制台中,它可用于检索最后一条语句的结果。

>>> 3 + 4
7
>>> a = _
>>> print a
7
于 2012-09-21T23:13:45.573 回答
3

它只是一个匿名变量,对python没有特殊意义。将其与i用作循环计数器进行比较。

您通常使用它来记录周围的代码将忽略该变量的值。

在 python 交互式控制台中,最后一个表达式的结果被分配给_,但这不会在 python 程序中执行。

于 2012-09-21T23:12:23.920 回答
2

尽管其他答案说了什么,但在 Python_ 中确实具有特殊含义。这是在交互式提示下打印的最后一个结果。

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

(当然,如果没有交互式提示,例如,因为您从 shell 运行 Python 脚本,那么它没有特殊含义。)

于 2012-09-21T23:14:46.633 回答
0

它代表一个匿名变量。使用它是因为变量是必需的,但可以忽略该值。

于 2012-09-21T23:10:38.900 回答
0

通常,当您不再需要引用该变量时,您会使用一个下划线来命名一个变量。例如,像这样:

for _ in range(10):
    print "hello"

这只会打印 10 次“hello”,我们永远不需要引用循环控制变量(_在这种情况下)。

在您的示例中,select.select(sockets, [], [])返回一个元组(或列表或集合),您似乎只需要其中的第一项,因此您使用下划线。

于 2012-09-21T23:13:25.713 回答