gpt4 book ai didi

python - 将函数作为带有命名参数的参数传递

转载 作者:行者123 更新时间:2023-11-30 23:34:53 29 4
gpt4 key购买 nike

我按照这个将函数作为参数传递:

Passing functions with arguments to another function in Python?

但是,我不知道如何将函数及其自己的参数作为名称参数传递

def retry(func, *args):
func(*args)

def action(args):
do something

retry(action, arg1, namedArg=arg2)

这里我得到一个异常(exception):

TypeError: retry() got an unexpected keyword argument 'namedArg'

通常情况下,我可以这样做:

action(arg1, namedArg=arg2)

请帮忙/

最佳答案

*args 及其兄弟 **kwargs 是通常用于额外参数和关键字参数的名称。当您传递 namedArg=arg2 时,您正在传递一个 kew word 参数。

所以,试试这个:

def retry(func, *args, **kwargs):
func(*args, **kwargs)

def action(*args, **kwargs):
do something

retry(action, arg1, namedArg=arg2)

如果您使用

def action(args, kwargs):
do something

然后,您最终将得到 args 作为参数列表,kwargs 作为关键字参数的字典,所以在您的情况下

args = [arg1]
kwargs = {'namedArg':arg2}

关于python - 将函数作为带有命名参数的参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17779814/

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