我的代码
第一档:
data = {'school':'DAV', 'standard': '7', 'name': 'abc', 'city': 'delhi'}
my_function(*data)
第二档:
my_function(*data):
schoolname = school
cityname = city
standard = standard
studentname = name
在上面的代码中,只有“data”字典的键被传递给my_function()
,但我希望键值对能够通过。如何纠正这个?
我希望my_function()
像这样修改
my_function(school='DAV', standard='7', name='abc', city='delhi')
这是我的要求,根据这个给出答案
编辑:字典键类更改为标准
答案 0 :(得分:94)
如果你想像这样使用它们,用正常的变量名定义函数(但klass
使用class
,你不能使用保留字):
def my_function(school, city, klass, name):
schoolname = school
cityname = city
standard = klass
studentname = name
现在(只要你在字典中将类重命名为klass),当你调用函数时,可以使用**
:
my_function(**data)
它可以随心所欲地工作。
答案 1 :(得分:36)
* data将参数解释为元组,而不是必须传递**数据,这些数据将参数解释为字典。
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']
你可以这样调用这个函数:
my_function(**data)
答案 2 :(得分:8)
你可以传递它
def my_function(my_data):
my_data["schoolname"] = "something"
print my_data
或者如果你真的想要
def my_function(**kwargs):
kwargs["schoolname"] = "something"
print kwargs