将函数的参数作为其他函数中的参数名称传递

时间:2018-09-28 09:36:46

标签: python function arguments parameter-passing

让我们假设我们在Python3中有两个函数fooget_id。我想在使用get_id函数的自变量作为foo函数中的自变量名称时,在foo函数内调用get_id函数。例如:

我调用foo函数:

result = foo("Person","name","John")

该函数的主体为:

def foo(arg_1, arg_2, arg_3): res = get_id(arg_1, arg_2 = arg_3) return res

我想要的是:

res = get_id("Person", name = "John")

,以便使用foo函数的arg_2参数对get_id函数进行参数化。但是,到目前为止,我的操作方式会导致错误,因为python将其解释为String。欢迎提出任何建议。

2 个答案:

答案 0 :(得分:2)

我可能尝试理解为什么要这样做:),但这也许是一个解决方案:

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函数中使用的参数的实际名称

答案 1 :(得分:0)

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

def test(a):
    print(a)

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

我确定您可以采用此解决方案来解决您的问题