I'd like to call a function in python using a dictionary.
Here is some code:
d = dict(param='test')
def f(param):
print param
f(d)
This prints {'param': 'test'}
but I'd like it to just print test
.
I'd like it to work similarly for more parameters:
d = dict(p1=1, p2=2)
def f2(p1,p2):
print p1, p2
f2(d)
Is this possible?
Here ya go - works just any other iterable:
Figured it out for myself in the end. It is simple, I was just missing the ** operator to unpack the dictionary
So my example becomes:
A few extra details that might be helpful to know (questions I had after reading this and went and tested):
Examples of each:
Number 1: The function can have parameters that are not included in the dictionary
Number 2: You can not override a parameter that is already in the dictionary
Number 3: The dictionary can not have parameters that aren't in the function.
In python, this is called "unpacking", and you can find a bit about it in the tutorial. The documentation of it sucks, I agree, especially because of how fantasically useful it is.