_, 在 Python 中做什么

What does _, do in Python

谁能解释一下 _ 在 Python 中的功能?我在下面的代码片段中找到了这个。

@property
def frame(self):
    if self._enteredFrame and self._frame is None:
        _, self._frame = self._capture.retrieve (channel = self.channel)
        return self._frame

我以前从未见过这个。

_是一个变量名。

self._capture.retrieve returns 一个有 2 个元素的序列,下面的语句将第一个元素分配给 _,将第二个元素分配给 self._frame。 (元组拆包)

_, self._frame = self._capture.retrieve(channel=self.channel)

习惯上,_用来忽略值。

_ 和其他变量一样只是一个变量,但是对于名为 _ 的变量有一些(矛盾的)约定。您在这里看到的是当您需要将结果分配给随后未使用的值时:retrieve 方法是 returning 两个值,程序员只对第二个值感兴趣。

_也用在交互shell中,用来存放最后一个表达式的结果。

_ 在某些代码中也用作翻译字符串的函数的名称,因此 _("some string") 将以特定语言 table 和 return 适当的翻译或原始字符串,如果没有可用的翻译。