如何在 python 中使用预先指定的参数将函数作为另一个函数的参数传递?

How to pass functions as parameters of another function with pre-specified arguments in python?

有没有一种方法可以传递看起来干净的带有参数的函数?例如,如果我想从 ars 传递具有特定参数值 a b 的函数 h,以便 ars1 运行这些特定的 a b,应该我愿意?我想做

def h(x, a, b):
    return x * a * b

def ars(fcn):
    a = 1
    b = 2
    return ars1(fcn( . , a,b))

def ars1(fcn):
    return fcn(1)*fcn(1)

ars(h)

我可以

def h(x, a, b):
    return x * a * b

def ars(fcn):
    a = 1
    b = 2
    return ars1(fcn, a, b)

def ars1(fcn, a, b):
    return fcn(1, a, b)*fcn(1, a, b)

达到了目的,但是由于abars1没有任何关系,所以代码看起来很乱,缺乏模块化。

您可以使用 lambda 函数来实现:

def h(x, a, b):
    return x * a * b

def ars(fcn):
    a = 1
    b = 2
    return ars1(lambda x: fcn(x, a, b))

def ars1(fcn):
    return fcn(1)*fcn(1)

ars(h)