Python arguments as a dictionary


How can I get argument names and their values passed to a method as a dictionary?

I want to specify the optional and required parameters for a GET request as part of a HTTP API in order to build the URL. I’m not sure of the best way to make this pythonic.

Asked By: Sean W.



Use a single argument prefixed with **.

>>> def foo(**args):
...     print(args)
>>> foo(a=1, b=2)
{'a': 1, 'b': 2}
Answered By: Fred Foo

For non-keyworded arguments, use a single *, and for keyworded arguments, use a **.

For example:

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

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

Non-keyworded arguments would be unpacked to a tuple and keyworded arguments would be unpacked to a dictionary.
Unpacking Argument Lists

Answered By: Bhargav Mangipudi
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.