我是Python新手,所以我尝试阅读现有的代码。但我对以下语法有些困惑。
例如:
rlist, _, _ = select.select(sockets, [], [])
我知道select.select()
需要三个列表作为参数(我猜[]
表示空列表),但是_
是否用于表示某种占位符?
我是Python新手,所以我尝试阅读现有的代码。但我对以下语法有些困惑。
例如:
rlist, _, _ = select.select(sockets, [], [])
我知道select.select()
需要三个列表作为参数(我猜[]
表示空列表),但是_
是否用于表示某种占位符?
这只是一个变量的名称!通常人们会使用_
来表示临时或不重要的变量。
正如其他人所说,_
是gettext的常用别名,它是一个翻译库。如果你看到它被称为函数,例如:_('Hello, world!')
,就可以确定它正在被用作gettext。
专业提示:在Python控制台中,它可用于检索上一条语句的结果。
>>> 3 + 4
7
>>> a = _
>>> print a
7
这只是一个匿名变量,在Python中没有特殊的含义。可以将其与使用i
作为循环计数器进行比较。
通常使用它来说明周围的代码将忽略该变量的值。
在Python交互式控制台中,最后一个表达式的结果被赋值给_
,但在Python程序中不会保留这个赋值。
尽管其他答案说_
在Python中没有特殊含义,但它实际上是交互提示符下最后一次打印的结果。
>>> 2+2
4
>>> _+2
6
for _ in range(10):
print "hello"
这只是打印 "hello" 十次,并且我们从不需要引用循环控制变量(在这种情况下是_
)。
在你的例子中,select.select(sockets, [], [])
返回一个元组(或列表或集合),你似乎只需要第一个项目,因此使用下划线。
它代表一个匿名变量。它的使用是因为变量是必需的,但值可以被忽略。
_
只是一个惯例,用于代表不需要用到的变量。不过,如果你同时使用gettext
,要小心,因为_
也是gettext
的一个常见别名! - Michael Mior