gpt4 book ai didi

接受两个函数并返回串联函数的 Python 函数?

转载 作者:行者123 更新时间:2023-12-05 08:37:26 41 4
gpt4 key购买 nike

我需要编写一个名为“concat”的 python 函数,它将任意两个函数作为输入,并返回一个函数,该函数是两个输入函数的串联函数(即它接受 f1 和 f2,并返回 f1◦f2 ).

我试过这个:

def concat(f1,f2):
return f1(f2)

例如,如果 f1 和 f2 是:

def f1(x):
return x+2
def f2(x):
return x*2

然后,concat(f1,f2) 应该返回:(x*2)+2

我希望能够像这样使用它:

a = concat(f1,f2)
a(5)

但是我得到一个错误:

TypeError: + 不支持的操作数类型: 'function' 和 'int'

我知道我可以这样定义函数:

def concat(f1,f2,x): 
return f1(f2(x))

但这不是我想要的;我希望能够创建 concat 函数的实例,然后可以用任何 x 调用它。

最佳答案

您需要返回一个新的“包装器”函数。一种选择是使用 lambda 表达式:

def concat(f1, f2):
return lambda x: f1(f2(x))

文档: https://docs.python.org/3/tutorial/controlflow.html#lambda-expressions

关于接受两个函数并返回串联函数的 Python 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65531057/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com