我刚刚开始学习python,要么没有读过,要么错过了,我不知道如何搜索才能找到答案。
在使用IMAP模块时,我遇到了这行代码。
result, data = mail.search(None, "ALL")这两个变量是怎么回事?这是一种在方法以某种方式返回时使用的语法,还是总是有效的?有人能解释一下这里发生了什么吗,或者给我介绍一些文档?
发布于 2012-10-17 04:42:42
这是序列解包的一种形式。如果RHS是长度为2的迭代器(因为您在LHS上有2个对象),则可以使用它。例如:
a,b = (1, 2) #The RHS here is a tuple, but it could be a list, generator, etc.
print a #1
print b #2Python3以一种有趣的方式扩展了这一点,允许RHS具有比LHS更多的值:
a,b,*rest = range(30)
print(a) #0
print(b) #1
print(rest == list(range(2,30))) #True发布于 2012-10-17 04:42:30
在Python中,您可以在一行中指定多个变量:-
a, b, c = 1, 2, 3将三个值1、2、3分别赋给a、b、c。
类似地,您可以将列表中的值赋给变量。
>>> li = [1, 2, 3]
>>> a, b, c = li
>>> a
1
>>> b
2这会将列表解包为3个变量
发布于 2012-10-17 04:47:46
这是多重赋值:变量result和data同时获得从mail.search返回的新值(none,ALL)。
在进行任何赋值操作之前,都会先计算右侧的表达式。右侧表达式的计算顺序是从左到右。
多任务文档在这里
http://docs.python.org/tutorial/introduction.html
https://stackoverflow.com/questions/12923059
复制相似问题