call f(a, *b) with f(*a, **b) ?

inhahe inhahe at gmail.com
Thu May 22 20:29:00 EDT 2008


"bukzor" <workitharder at gmail.com> wrote in message 
news:55bc8846-107e-461a-89de-25c83cbcfa27 at 2g2000hsn.googlegroups.com...
> This question seems easy but I can't figure it out.
> Lets say there's a function:
>
> def f(a, *args):
>    print a
>    for b in args: print b
>
> and elsewhere in your program you have a list and a dict like this:
> args = [2, 3]
> kwargs = {'a':1}
>
> I'd like to get f() to print something like the following, but I can't
> figure out how.
> 1
> 2

I think there's no 'standard' way to do this. but:

import inspect
f(*map(kwargs.get, inspect.getargspec(f)[0])+args)

i don't know if it works because i'm afraid to try it.  if it doesn't the 
solution is something similar to that.





More information about the Python-list mailing list