Python:如何传递带有两个参数作为参数的函数

Ele*_*ent 0 python arguments function

我有个问题:

我需要在 python 中实现一个函数,它打印参数的标量倍数 - 参数本身就是一个具有签名的函数:

def innerF(a,b):
    return x
Run Code Online (Sandbox Code Playgroud)

标量乘数是函数内的常数 - 例如

return 55 * x

现在是我似乎不明白的部分:调用 Sytanx 需要是:

print( outerF(innerF)(a,b))

所以总结一下

def innerF(a,b):
    return a + b

def outerF( #What goes here? ):
    return 55* #How two call the innerF?

print(outerF(innerF)(a,b))
Run Code Online (Sandbox Code Playgroud)

到目前为止我所知道的:

  • 我可以将innerF和a,b作为单独的参数传递给outerF,例如

    def outerF(innerF,a,b): 返回 53* innerF(a,b)

我不明白的是:

innerF(outerF)(a,b)我完全不知道externalF 调用的签名。我也找不到参考。

预先非常感谢您!

rda*_*das 6

outerF需要返回一个被调用的函数(a, b)

def innerF(a, b):
    return a + b


def outerF(func):
    # define a function to return
    def f(*args, **kwargs):
        # this just calls the given func & scales it
        return 55 * func(*args, **kwargs)

    return f


print(outerF(innerF)(1, 2))
Run Code Online (Sandbox Code Playgroud)

结果:

165  # 55 * (1+2)
Run Code Online (Sandbox Code Playgroud)