有没有一种优雅的方法将参数从 function1() 传递到需要多个参数的 function2() ?

M T*_*omb 0 python arguments if-statement function

我有以下情况:

def func1(a = 0, b = 0):
    return a + b**2

def func2(x):
    if x == 'a':
        return func1(a = 2)
    elif x == 'b':
        return func2(b = 2)

print(func2('a'))
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以a不作为字符串传递并摆脱 if 语句?

che*_*ner 5

构造一个字典并将其与映射解包语法一起使用。

def func2(x):
    return func1(**{x: 2})
Run Code Online (Sandbox Code Playgroud)

您可能仍然需要一个if语句来验证 的值是否x是 的有效参数的名称func1。如此处所示,当尝试使用 调用时,类似的调用func2('c')将产生一个。TypeErrorfunc1{'c': 2}