Аргументы Python как словарь - PullRequest
42 голосов
/ 21 января 2012

Как получить имена аргументов и их значения, передаваемые методу в виде словаря?

Я хочу указать необязательные и обязательные параметры для запроса GET как часть HTTP API для построения URL. Я не уверен в лучшем способе сделать это питоническим.

Ответы [ 2 ]

55 голосов
/ 21 января 2012

Используйте один аргумент с префиксом **.

>>> def foo(**args):
...     print(args)
...
>>> foo(a=1, b=2)
{'a': 1, 'b': 2}
35 голосов
/ 21 января 2012

Для аргументов без ключа используйте один *, а для ключевых слов используйте **.

Например:

def test(*args, **kwargs):
    print args
    print kwargs

>>test(1, 2, a=3, b=4)
(1, 2)
{'a': 3, 'b': 4}

Аргументы без ключевых слов будут распакованы в кортеж, а аргументы с ключевыми словами будут распакованы в словарь. Распаковка списков аргументов

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