首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python中的" variable,variable =“语法?

python中的" variable,variable =“语法?
EN

Stack Overflow用户
提问于 2012-10-17 04:40:42
回答 3查看 146关注 0票数 2

我刚刚开始学习python,要么没有读过,要么错过了,我不知道如何搜索才能找到答案。

在使用IMAP模块时,我遇到了这行代码。

代码语言:javascript
复制
result, data = mail.search(None, "ALL")

这两个变量是怎么回事?这是一种在方法以某种方式返回时使用的语法,还是总是有效的?有人能解释一下这里发生了什么吗,或者给我介绍一些文档?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-17 04:42:42

这是序列解包的一种形式。如果RHS是长度为2的迭代器(因为您在LHS上有2个对象),则可以使用它。例如:

代码语言:javascript
复制
a,b = (1, 2)  #The RHS here is a tuple, but it could be a list, generator, etc.
print a #1
print b #2

Python3以一种有趣的方式扩展了这一点,允许RHS具有比LHS更多的值:

代码语言:javascript
复制
a,b,*rest = range(30) 
print(a) #0
print(b) #1
print(rest == list(range(2,30))) #True
票数 10
EN

Stack Overflow用户

发布于 2012-10-17 04:42:30

在Python中,您可以在一行中指定多个变量:-

代码语言:javascript
复制
a, b, c = 1, 2, 3

将三个值1、2、3分别赋给a、b、c。

类似地,您可以将列表中的值赋给变量。

代码语言:javascript
复制
>>> li = [1, 2, 3]    
>>> a, b, c = li
>>> a
1
>>> b
2

这会将列表解包为3个变量

票数 3
EN

Stack Overflow用户

发布于 2012-10-17 04:47:46

这是多重赋值:变量result和data同时获得从mail.search返回的新值(none,ALL)。

在进行任何赋值操作之前,都会先计算右侧的表达式。右侧表达式的计算顺序是从左到右。

多任务文档在这里

http://docs.python.org/tutorial/introduction.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12923059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档