This question already has an answer here:
-
Passing a dictionary to a function in python as keyword parameters
4 answers
My code
1st file:
data = {'school':'DAV', 'standard': '7', 'name': 'abc', 'city': 'delhi'}
my_function(*data)
2nd file:
my_function(*data):
schoolname = school
cityname = city
standard = standard
studentname = name
in the above code, only keys of "data" dictionary were get passed to my_function()
, but i want key-value pairs to pass. How to correct this ?
I want the my_function()
to get modified like this
my_function(school='DAV', standard='7', name='abc', city='delhi')
and this is my requirement, give answers according to this
EDIT: dictionary key class is changed to standard
If you want to use them like that, define the function with the variable names as normal (but use klass
for class
, you can't use reserved words):
def my_function(school, city, klass, name):
schoolname = school
cityname = city
standard = klass
studentname = name
Now (as long as you rename class to klass in your dictionary) you can use **
when you call the function:
my_function(**data)
and it will work as you want.
*data interprets arguments as tuples, instead you have to pass **data which interprets the arguments as dictionary.
data = {'school':'DAV', 'class': '7', 'name': 'abc', 'city': 'pune'}
def my_function(**data):
schoolname = data['school']
cityname = data['city']
standard = data['class']
studentname = data['name']
You can call the function like this:
my_function(**data)
You can just pass it
def my_function(my_data):
my_data["schoolname"] = "something"
print my_data
or if you really want to
def my_function(**kwargs):
kwargs["schoolname"] = "something"
print kwargs