我对 Python 有点陌生,所以我试图阅读现有代码。不过,我对此的语法有点困惑。
例如:
rlist, _, _ = select.select(sockets, [], [])
我知道这select.select()
需要 3 个列表(我假设[]
只是指空列表),但是_
用于表示某种占位符吗?
我对 Python 有点陌生,所以我试图阅读现有代码。不过,我对此的语法有点困惑。
例如:
rlist, _, _ = select.select(sockets, [], [])
我知道这select.select()
需要 3 个列表(我假设[]
只是指空列表),但是_
用于表示某种占位符吗?
这只是一个变量的名称!通常人们使用_
临时或无关紧要的变量。
正如其他人所说,_
是翻译库 gettext 的常见别名。如果您看到它被称为函数,您可以识别它何时被用作 gettext,例如。_('Hello, world!')
.
Protip:在 python 控制台中,它可用于检索最后一条语句的结果。
>>> 3 + 4
7
>>> a = _
>>> print a
7
它只是一个匿名变量,对python没有特殊意义。将其与i
用作循环计数器进行比较。
您通常使用它来记录周围的代码将忽略该变量的值。
在 python 交互式控制台中,最后一个表达式的结果被分配给_
,但这不会在 python 程序中执行。
尽管其他答案说了什么,但在 Python_
中确实具有特殊含义。这是在交互式提示下打印的最后一个结果。
>>> 2+2
4
>>> _+2
6
(当然,如果没有交互式提示,例如,因为您从 shell 运行 Python 脚本,那么它没有特殊含义。)
它代表一个匿名变量。使用它是因为变量是必需的,但可以忽略该值。
通常,当您不再需要引用该变量时,您会使用一个下划线来命名一个变量。例如,像这样:
for _ in range(10):
print "hello"
这只会打印 10 次“hello”,我们永远不需要引用循环控制变量(_
在这种情况下)。
在您的示例中,select.select(sockets, [], [])
返回一个元组(或列表或集合),您似乎只需要其中的第一项,因此您使用下划线。