假设我有一个函数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()吗?
有只小跳蛙
慕慕森
相关分类