What does the comma in the declaration below mean? Does it define two variables at once?
resp, content = client.request(request_token_url, \"GET\")
That's called tuple unpacking
. In python, you can unpack tuples like this:
a, b = (1, 2)
See that on the right we have a tuple, packing values, and they are automatically "distributed" to the objects on the left.
If a function returns a tuple, in can be unpacked as well:
>>> def t():
... return (1, 2)
...
>>> a, b = t()
>>> a
1
>>> b
2
That's what's happening in your code.
It creates a tuple. In this case, the tuple is of two variables, which get assigned the result from request()
.
request()
returns a tuple, which is then automatically unpacked into the left-hand tuple during assignment.
If you had just
result = client.request(request_token_url, "GET")
that would assign the tuple directly to result. Then you would be able to access the response at result[0]
, the first value in the tuple, and the content would be in result[1]
.