2015-01-03 64 views
0

有人可以在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 

我从来没有见过这个。

+0

这是一个变量。 –

+0

它是一个自动分配由shell执行的每个表达式的结果的变量。 –

+0

看到这篇文章:http://stackoverflow.com/questions/5893163/underscore-in-python –

回答

0

_只是一个像其他任何变量一样的变量,然而对于名为_的变量有一些(矛盾的)约定。您在这里看到的是您需要将结果赋值为以后未使用的值:retrieve方法返回两个值,程序员只对第二个值感兴趣。

_还用于交互式shell中存储最后一个表达式的结果。

_也在某些代码中用作将翻译字符串的函数的名称,所以_("some string")将在语言特定的表中查找字符串,并在没有可用翻译的情况下返回适当的翻译或原始字符串。

1

_是一个变量名。

self._capture.retrieve返回与2-元件seqeunce,和下面的语句的第一个元素分配给_,以及self._frame第二元件。 (tuple unpacking)

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

通常,_用于忽略该值。

+0

我明白_,是不是一件事,但_和,所以也许写得更好_; self._frame = .... –

+0

@mharms,如果你用';'替换''',它变成了不同的东西。想想这个:'a,b = 1,2'和'a; b = 1,2'。如果之前未分配“a”,则第二个将导致错误;和'b'的值会有所不同。 – falsetru

+0

对不起,是一个typeerror,我的意思是在下划线和冒号(,)之间的空格。 _,self._frame = ....现在对我来说很清楚,谢谢! –