Passing parameters using **kargs

Peter Otten __peter__ at web.de
Tue Jun 8 09:03:33 CEST 2004


Thomas Philips wrote:

> I want to access parameters that are passed into a function using the
> **kargs idiom. I define f(**kargs) via
> 
> def f(**kargs):
>     print kargs
>     .
>     .
> 
> the keyword arguments are converted to a dictionary, so that if I type
> f(a=1, b=2, c=3)
> 
> the function prints
> {'a': 1, 'b': 2, 'c':3}
> 
> Now assume the function has three variables a, b and c to which I want
> to assign the dictionary's values of 'a', 'b' and 'c'. How can I
> assign kargs['a'] to a, kargs['b'] to b, and kargs['c'] to c. Should I
> be trying to construct a string representation of each variable's name
> and using that as a key, or am I just thinking about this the wrong
> way?

How about

>>> def f(a=None, b=None, c=None, **moreargs):
...     print locals()
...
>>> f(x=22, b=99)
{'moreargs': {'x': 22}, 'a': None, 'c': None, 'b': 99}
>>>

Peter





More information about the Python-list mailing list