有没有一种方法可以传递带有清晰参数的函数?例如,如果我想从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
b
与ars1
无关,因此代码看起来很凌乱并且缺乏模块化。
答案 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)