gpt4 book ai didi

python - 如何消费/链接功能 "Pythonically"?

转载 作者:行者123 更新时间:2023-11-28 20:13:28 25 4
gpt4 key购买 nike

我有一组函数f(x), g(x), s(x), t(x)

它们被设计成像这样链接在一起:f(g(s(t(x))))

函数的设计使其可以按任何顺序链接。我的代码的另一部分在列表中构建序列:[f, g, s, t]

有没有一种优雅的方法来获取列表并链接函数调用,从而获得最后结果的输出?

现在显然我可以使用一个外部类似计数器的变量来跟踪输出和一个简单的 for 循环增量索引,但我想知道是否有更 Pythonic 的方法来做到这一点?

最佳答案

Reduce 是完美的答案(虽然我们需要从最里面的函数开始,因此 reversed):

import functools

functions = [f, g, s, t]
y = functools.reduce(lambda a, f: f(a), reversed(functions), x)

编辑:使用常量参数,就这么简单:

p1, p2 = 5, 42
y = functools.reduce(lambda a, f: f(a, p1, p2), reversed(functions), x)

关于python - 如何消费/链接功能 "Pythonically"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54089072/

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