假设我有一个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)
Run Code Online (Sandbox Code Playgroud)
因此,我们的想法是避免在函数调用和函数定义中键入参数名称.我用字典作为参数调用函数,字典的键成为函数的局部变量,它们的值是字典值
我尝试了以上并得到错误说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)
Run Code Online (Sandbox Code Playgroud)
它也行不通.我也无法在不使用的情况下实现这一行为locals()?
Vla*_*mir 11
**kwargs是一本普通的字典.试试这个:
def get_data(arg1, **kwargs):
print arg1, kwargs['arg2'], kwargs['arg3'], kwargs['arg4']
Run Code Online (Sandbox Code Playgroud)
另外,检查关键字参数的文档.
| 归档时间: |
|
| 查看次数: |
5256 次 |
| 最近记录: |