Jason S
Jason S

Reputation: 189626

calling Python kwargs functions with special keys

I want to use kwargs in Python like this:

def myfunc(**kwargs):
  ... do something ...


x = myfunc(a=1, b=2, #value=4)

But I can't, because #value is not a valid Python keyword

Alternatively, I can do this:

x = myfunc(**{'a':1, 'b':2, '#value': 4})

which is kind of awkward.

Is there any way I can use some kind of hybrid approach here?

# this doesn't work
x = myfunc(a=1,b=2, {'#value': 4})

Upvotes: 1

Views: 62

Answers (1)

Martijn Pieters
Martijn Pieters

Reputation: 1121366

Sure you can:

x = myfunc(a=1, b=2, **{'#value': 4})

Using explicit keyword parameters does not prevent you from passing in a dictionary as well.

Demo:

>>> def myfunc(**kwargs):
...     print kwargs
... 
>>> myfunc(a=1, b=2, **{'#value': 4})
{'a': 1, 'b': 2, '#value': 4}

Upvotes: 6

Related Questions