gpt4 book ai didi

表达式中的 Python 函数 - 推迟求值

转载 作者:行者123 更新时间:2023-12-01 00:51:23 25 4
gpt4 key购买 nike

我知道在 python 中你可以这样做:

def getFunc():
def func(x):
return x+4
return func

f = getFunc()
#8
print(f(4))

以下部分会导致错误。有没有办法用不同的语法/符号来完成同样的事情?

f1 = getFunc()
f2 = getFunc()

# unsupported operand type(s) for +: 'function' and 'function'
rslt = f1 + f2

# Evaluate expression by passing in '1' to all functions
# Ideally Outputs f1(1) + f2(1) = 10
rslt(1)

最佳答案

您可以将它们包装在另一个函数中,在本例中为 lambda:

对于通用版本:

reslt = lambda x: sum(map(lambda f: f(x), (f1, f2)))

其中 (f1, f2, .. fn) 是一个包含要应用的函数的元组。

或者简单的硬编码版本:

reslt = lambda x: f1(x) + f2(x)

关于表达式中的 Python 函数 - 推迟求值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56546211/

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