Python 将函数的参数作为参数名传递给其他函数
假设在Python3中有两个函数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函数
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函数属于导入的包,我需要以这种特定的方式使用它。“我可能不应该试图理解您为什么要这样做”=>事实上:-|“我可能不应该试图理解您为什么要这样做”=>事实上:-|