如何在python中将函数作为具有预定义参数的另一个函数的参数传递?

时间:2018-07-01 22:27:30

标签: python arguments parameter-passing modularity

有没有一种方法可以传递带有清晰参数的函数?例如,如果我想从ars传递带有特定参数值h a的函数b,以使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)

可以达到目的,但是由于a bars1无关,因此代码看起来很凌乱并且缺乏模块化。

1 个答案:

答案 0 :(得分:1)

您可以使用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)