python - 如何构建 python 函数结果的通用总和

标签 python python-2.7

我想在 python 中构建函数的总和。但是,我不知道总和的长度。所有函数都是相似类型的,即具有一个输入和相同的输出类型。对于两个这样的东西会起作用

In [180]: def H(f, g):
     ...:     def _h(x):
     ...:         return f(x) + g(x)
     ...:     return _h

但是,我想要一些通用的东西,因为我可以编写 H(*args) 并返回 args 中所有函数的总和>(也只为一个人工作)。

我是否正确认为这是构建函数总和的唯一方法?我不能为两个函数写类似 h = f+g 的东西吗?

最佳答案

编写可扩展的东西可能更容易。您应该使用内置函数 sum 进行实际的求和。这将返回 generator将每个函数应用于输入 x:

def map_funcs(x, *funcs):
    return (f(x) for f in funcs)

funcs = lambda x: x + 1, lambda x: x**2
x = 10
print(sum(map_funcs(x, *funcs)))

如果你愿意,你也可以把它变成一个包装器,它返回一些可调用的东西,类似于你已经得到的:

def map_funcs(*funcs):
    def wrapper(x):
        return (f(x) for f in funcs)
    return wrapper

funcs = lambda x: x + 1, lambda x: x**2
x = 10
print(sum(map_funcs(*funcs)(x)))
# 111

关于python - 如何构建 python 函数结果的通用总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48783872/

相关文章:

python - 如何根据条件替换列表中的多个元素?

python - Python 中的 XML 解析问题 - 找不到 findtext

python - 如何使for循环在无法达到预定数量时返回填充行?

python - 欧拉计划挑战的逻辑谬误 31

python - 如何在终端窗口python中创建超链接

python - 使用自定义小部件 kivy

Python Jinja2 模板渲染字符串

python - docker使用环境变量在CMD中运行python脚本

python - Flask 桌面应用程序文件选择器

python - 获取每个 json 模式错误的属性