2011-07-12 104 views
5

我使用imaplib通過Gmail訪問工作我的方式和遇到:瞭解一些Python代碼

# Count the unread emails 
status, response = imap_server.status('INBOX', "(UNSEEN)") 
unreadcount = int(response[0].split()[2].strip(').,]')) 
print unreadcount 

我只想知道:

status, 

確實在「響應前=」。我想谷歌,但我不知道我甚至會問找到該:(答案。

感謝。

回答

13

當函數返回一個元組,它可以通過一個以上的閱讀。可變

def ret_tup(): 
    return 1,2 # can also be written with parens 

a,b = ret_tup() 

a和b現在1和2分別

5

參見本頁: http://docs.python.org/tutorial/datastructures.html

5.3節menti ons'multiple assignment'aka'sequence unpacking'

基本上,函數imap_server返回一個元組,並且python允許一個快捷方式允許您爲元組的每個成員初始化變量。你可以輕鬆完成

tuple = imap_server.status('INBOX', "(UNSEEN)") 
status = tuple[0] 
response = tuple[1] 

所以最後,只是一個句法快捷方式。您可以使用任務右側的任何類似序列的對象來做到這一點。

+0

謝謝你們,現在都有道理。乾杯。 – Markus

2

雖然給出的答案肯定是足夠的,但是這個python特性的快速應用是易於交換值。

在一個正常的語言,交流變量的值xy,你需要一個臨時變量

z = x 
x = y 
y = z 

但在Python中,我們可以改爲縮短這

x, y = y, x