Что означает этот синтаксис в Python? - PullRequest
2 голосов
/ 11 апреля 2011

Что означает запятая в объявлении ниже? Он определяет две переменные одновременно?

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

Ответы [ 2 ]

4 голосов
/ 11 апреля 2011

Создает кортеж . В этом случае кортеж состоит из двух переменных, которым присваивается результат из request().

request() возвращает кортеж, который затем автоматически распаковывается в левый кортеж во время назначения.

Если бы вы только что

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

, который назначил бы кортеж непосредственно результату. Тогда вы сможете получить доступ к ответу на result[0], первое значение в кортеже, а содержимое будет в result[1].

2 голосов
/ 11 апреля 2011

Это называется tuple unpacking.В python вы можете распаковать кортежи следующим образом:

a, b = (1, 2)

Обратите внимание, что справа у нас есть кортеж, упаковывающий значения, и они автоматически "распределяются" по объектам слева.

Если функция возвращает кортеж, ее также можно распаковать:

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

Вот что происходит в вашем коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...