Python 将函数的参数作为参数名传递给其他函数

Python 将函数的参数作为参数名传递给其他函数,python,function,arguments,parameter-passing,Python,Function,Arguments,Parameter Passing,假设在Python3中有两个函数foo和get\u id。我想在foo函数中调用get\u id函数,同时在get\u id函数中使用foo函数的参数作为参数名称。例如: 我调用foo函数: result=foo(“个人”、“姓名”、“约翰”) 而函数的主体是: def foo(arg_1、arg_2、arg_3): res=get_id(arg_1,arg_2=arg_3) 返回res 我想要的是: res=get\u id(“Person”,name=“John”) 因此,get_id函数

假设在Python3中有两个函数
foo
get\u id
。我想在
foo
函数中调用
get\u id
函数,同时在
get\u id
函数中使用
foo
函数的参数作为参数名称。例如:

我调用
foo
函数:

result=foo(“个人”、“姓名”、“约翰”)

而函数的主体是:

def foo(arg_1、arg_2、arg_3):
res=get_id(arg_1,arg_2=arg_3)
返回res

我想要的是:

res=get\u id(“Person”,name=“John”)


因此,get_id函数将由foo函数的arg_2参数参数化。但是,到目前为止,我这样做会导致错误,因为python将其解释为字符串。欢迎提供任何建议。

这是将参数名称作为字符串传递的方法:

def test(a):
    print(a)

test(**{'a': 'hello world'})

我相信您可以根据您的问题调整此解决方案

这是将参数名称作为字符串传递的方法:

def test(a):
    print(a)

test(**{'a': 'hello world'})

我相信您可以根据您的问题调整此解决方案

我可能不应该试图理解您为什么要这样做:)但这里可能有一个解决方案:

def foo(arg_1, arg_2, arg_3):
    kwargs = {
        'arg_1_name': arg_1,
        arg_2: arg_3,
    }
    return get_id(**kwargs)

只需确保用
get\u id
函数中使用的参数的实际名称替换
arg\u 1\u name
,我可能不应该试图理解您为什么要这样做:),但这里可能有一个解决方案:

def foo(arg_1, arg_2, arg_3):
    kwargs = {
        'arg_1_name': arg_1,
        arg_2: arg_3,
    }
    return get_id(**kwargs)

只需确保将
arg_1_name
替换为
get_id
函数中使用的参数的实际名称即可

只需在函数内部执行即可。类似于
get_id(arg_1,arg_2,arg_3):arg_2=arg_3
No,这不起作用。具体的用例是什么?get_id函数属于导入的包,我需要以这种特定的方式使用它。您可以在函数内部执行它。类似于
get_id(arg_1,arg_2,arg_3):arg_2=arg_3
No这不起作用。具体的用例是什么?get_id函数属于导入的包,我需要以这种特定的方式使用它。“我可能不应该试图理解您为什么要这样做”=>事实上:-|“我可能不应该试图理解您为什么要这样做”=>事实上:-|