2015-01-03 62 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 = ....現在對我來說很清楚,謝謝! –