[英]Function that applies two given functions to an outside argument in Python
我正在经历一位大学顾问给我的一些面试准备问题,建议为准备不同的面试准备这个问题:
“完成功能:
applyFunctions(outer_function, inner_function)
它接受两个函数,一个外部函数和一个内部函数,并返回一个函数,该函数将外部函数应用于内部函数的参数。”
我对这个问题感到有些困惑,因为它不接受函数中的参数,而是在其外部应用:
applyFunctions(outer_function, inner_function)(5)
我对lambda及其用法很熟悉,但是这个问题使我感到困惑。
任何建议都很好。 先感谢您。
编辑:
包含的测试用例(示例)是:
add2 = lambda x: x + 2
times2 = lambda x: x * 2
compose(add2,times2)(3)
> 8
首先定义inner
和outer
是什么:带参数并返回结果的函数。
然后定义apply
,这是一个接受两个函数的函数,并返回一个以某种方式将两者结合的函数。
def inner(n):
print("inner called")
return 3 * n
def outer(n):
print("outer called")
return n - 5
def apply(inn, out):
return lambda n: out(inn(n))
a = apply(inner, outer)
print(a(5))
输出:
10
它们的含义是:给出给定f
和g
的函数,使函数取x
并给出f(g(x))
。 接受f
和g
函数看起来像lambda f,g:<something>
接受x
的函数是lambda x:<something>
。 放在一起,就得到了lambda f, g: lambda x: f(g(x))
。
使用lambda创建一个新函数,该函数将所有* args和** kwargs传递给inner_function,然后返回到external_function:
def applyFunctions(outer_function, inner_function):
return lambda *args, **kwargs: outer_function(inner_function(*args, **kwargs))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.