一个函数是否可以将第二个函数的可选参数之一的名称作为参数,然后调用第二个函数,将可选参数设置为第一个函数中的某些变量的值?
代码(这显然是行不通的)
def foo(a=1,b=2,c=3):
d = a + b + c
return d
def bar(variable):
z = get_user_input()
e = foo(variable = z)
return e
print(bar(a))
期望的结果是bar调用foo(a=z)并输出z+2+3的值。当然Python不知道这里的(a)是什么。我的猜测是,我可以以某种方式引用foo()的参数列表,但我对如何做到这一点感到困惑。
也许尝试以下代码片段
def foo(a=1,b=2,c=3):
d = a + b + c
return d
def bar(variable: str):
z = int(input())
e = foo(**{variable: z})
return e
# variable name should be defined as string
print(bar("a"))
**
解析字典上的所有任意参数,在本例中是a
。但是要小心,如果传递错误的变量名(不同于a
,b
或c
)将导致抛出错误。