gpt4 book ai didi

python - 在函数调用和定义中使用 **kwargs

转载 作者:太空狗 更新时间:2023-10-29 22:09:41 28 4
gpt4 key购买 nike

假设我有一个函数 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。我知道我可以更改 get_data 定义中的 locals() 以获得所需的行为。

所以我的代码看起来像这样

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() 的情况下实现该行为吗?

最佳答案

**kwargs 是一个简单的字典。试试这个:

def get_data(arg1, **kwargs):
print arg1, kwargs['arg2'], kwargs['arg3'], kwargs['arg4']

此外,请检查 keyword arguments 上的文档.

关于python - 在函数调用和定义中使用 **kwargs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16586888/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com