Re: ALL function arguments in a common dictionary

2013-04-24 Thread Fábio Santos
A quick hack:

>>> from inspect import getargspec
>>>
>>> def func(a, b, c=3, **kwargs):
... out_dict = {}
... args, _, keywords, _ = getargspec(func)
... for argname in args:
... out_dict[argname] = locals()[argname]
... if keywords:
... out_dict.update(locals()[keywords])
... return out_dict
...
>>> func(1,2, gah=123)
{'a': 1, 'c': 3, 'b': 2, 'gah': 123}
>>>

On Wed, Apr 24, 2013 at 2:36 PM, Wolfgang Maier
 wrote:
> Hi everybody,
> what is the recommended way of stuffing *all* function arguments (not just
> the ones passed by **kwargs) into a common dictionary?
>
> The following sort of works when used as the first block in a function:
> try:
> kwargs.update(locals())
> except NameError:
> kwargs = locals().copy()
>
> except that it's nesting pre-existing kwargs.
>
> Thanks for your help,
> Wolfgang
>
> --
> http://mail.python.org/mailman/listinfo/python-list



-- 
Fábio Santos
-- 
http://mail.python.org/mailman/listinfo/python-list


ALL function arguments in a common dictionary

2013-04-24 Thread Wolfgang Maier
Hi everybody,
what is the recommended way of stuffing *all* function arguments (not just
the ones passed by **kwargs) into a common dictionary?

The following sort of works when used as the first block in a function:
try:
kwargs.update(locals())
except NameError:
kwargs = locals().copy()

except that it's nesting pre-existing kwargs.

Thanks for your help,
Wolfgang

-- 
http://mail.python.org/mailman/listinfo/python-list