What does _, do in Python
有人能给我解释一下在python中uuu的功能吗?我在下面的代码中找到了这个。
1 2 3 4 5
| @property
def frame(self):
if self._enteredFrame and self._frame is None:
_, self._frame = self._capture.retrieve (channel = self.channel)
return self._frame |
我以前从没见过这个。
- 它是一个变量。
- 它是一个变量,自动为shell执行的每个表达式的结果赋值。
- 请参阅本文:stackoverflow.com/questions/5893163/underline in pytho‌&8203;n
_是一个变量名。
self._capture.retrieve返回带有2个元素的seqeonce,下面的语句将第一个元素赋给_,第二个元素赋给self._frame。(tuple解包)
1
| _, self._frame = self._capture.retrieve(channel=self.channel) |
通常,_用于忽略该值。
- 我知道uuu不是一回事,但uuu,所以最好写得像uu;自我u frame=…
- @mharms,如果你用;替换,,它会变得不同。想想这个:a, b = 1, 2和a; b = 1, 2。如果之前没有分配a,第二个会导致错误;b的值会不同。
- 抱歉;是一个类型错误,我的意思是下划线和冒号(,)之间有一个空格。_,self._frame=…现在我明白了,谢谢!
- @mharms,不要在,前面放一个空格:python.org/dev/peps/pep-0008/id19
_和其他变量一样,只是一个变量,但是对于一个名为_的变量有一些(矛盾的)约定。您在这里看到的是,当您需要将结果赋给一个随后未使用的值时:retrieve方法返回两个值,而程序员只对第二个值感兴趣。
交互shell中还使用_来存储最后一个表达式的结果。
在某些代码中,_还用作将转换字符串的函数的名称,因此_("some string")将在特定语言的表中查找字符串,如果没有可用的转换,则返回相应的转换或原始字符串。