假设我有一个get_data
接受一些关键字参数的函数。有什么办法可以做到这一点
def get_data(arg1, **kwargs):
print arg1, arg2, arg3, arg4
arg1 = 1
data['arg2'] = 2
data['arg3'] = 3
data['arg4'] = 4
get_data(arg1, **data)
所以这个想法是避免在函数调用和函数定义中键入参数名称。我用字典作为参数调用函数,字典的键成为函数的局部变量,它们的值是字典值
我尝试了上述方法并收到错误消息global name 'arg2' is not defined
。我知道我可以更改locals()
定义中的get_data
以获得所需的行为。
所以我的代码看起来像这样
def get_data(arg1, kwargs):
locals().update(kwargs)
print arg1, arg2, arg3, arg4
arg1 = 1
data['arg2'] = 2
data['arg3'] = 3
data['arg4'] = 4
get_data(arg1, data)
它也行不通。我也不能在不使用的情况下实现这种行为locals()
吗?