繁体   English   中英

将两个给定函数应用于Python中外部参数的函数

[英]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

首先定义innerouter是什么:带参数并返回结果的函数。

然后定义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

它们的含义是:给出给定fg的函数,使函数取x并给出f(g(x)) 接受fg函数看起来像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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM