理解一些Python代码

时间:2011-07-12 03:04:14

标签: python

我正在使用imaplib进行Gmail访问,并遇到过:

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

我只想知道:

status,

在“response =”前面。我会谷歌,但我不知道我甚至要求找到答案:(。

感谢。

3 个答案:

答案 0 :(得分:13)

当一个函数返回一个元组时,它可以由多个变量读取。

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

a,b = ret_tup()

a和b分别为1和2

答案 1 :(得分:5)

查看此页面: http://docs.python.org/tutorial/datastructures.html

第5.3节提到'多重赋值'又称'序列解包'

基本上,函数imap_server返回一个元组,而python允许一个快捷方式,允许你为元组的每个成员初始化变量。你可以轻松完成

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

所以最后,只是一个句法快捷方式。您可以使用任务右侧的任何类似序列的对象执行此操作。

答案 2 :(得分:2)

虽然给出的答案肯定是足够的,但是这个python功能的快速应用是交换值的简易性。

在普通语言中,要交换变量xy的值,您需要一个临时变量

z = x
x = y
y = z

但是在python中,我们可以将其缩短为

x, y = y, x