这个语法在Python中意味着什么?

时间:2011-04-11 02:59:04

标签: python syntax

以下声明中的逗号是什么意思?它是否一次定义了两个变量?

resp, content = client.request(request_token_url, "GET")

3 个答案:

答案 0 :(得分:4)

创建tuple。在这种情况下,元组有两个变量,它们从request()分配结果。

request()返回一个元组,然后在分配期间自动解压缩到左侧元组中。

如果你刚刚

result = client.request(request_token_url, "GET")

将元组直接分配给结果。然后,您就可以访问result[0]的响应,这是元组中的第一个值,内容将位于result[1]

答案 1 :(得分:2)

这叫做tuple unpacking。在python中,你可以解压缩这样的元组:

a, b = (1, 2)

在右边看到我们有一个元组,打包值,它们会自动“分发”到左边的对象。

如果一个函数返回一个元组,in也可以解压缩:

>>> def t():
...     return (1, 2)
... 
>>> a, b = t()
>>> a
1
>>> b
2

这就是您的代码中发生的事情。

答案 2 :(得分:0)

逗号表示连接,换句话说,client.request(request_token_url, "GET")将返回两个项目的元组列表,其中第一个将分配给resp,第二个将分配给content,它与

相同
temp = client.request(request_token_url, "GET")

resp = temp[0]
content = temp[1]