problems binding a dictionary
Dody Suria Wijaya
dodysw at gmail.com
Sat Dec 10 21:38:53 CET 2005
vida00 at gmail.com wrote:
> this has to be a very silly thing.
> I have a function foo taking a dictionary as parameters. i.e.: def
> foo(**kwargs): pass
> when I call foo(param1='blah',param2='bleh',param3='blih') everything
> is fine.
> but when I do:
>>>> def foo(**kwargs):
> ... pass
> I get:
> Traceback (most recent call last):
> File "<stdin>", line 1, in ?
> TypeError: foo() takes exactly 0 arguments (1 given)
> Why? how do I pass the dictionary *d* to foo()?
> - Josh.
simply because your parameter definition expect keyword parameter
passing, and you are passing a paramater by placement. You should call
the function like this:
or, since d is dict, you could use d's key/vals as keyword parameter:
which equivalent to doing:
More information about the Python-list