python - 如何将一个函数的输出作为输入传递给另一个函数?

标签 python function parameters

我正在尝试编写一个函数,该函数获取函数列表作为参数,以及第一个函数的参数。然后它按顺序调用它们,将前一个的输出传递到下一个。 (显然,要使其工作,所有函数都必须期望相同数量的参数并返回相同数量的值)。

这是我尝试过的:

def chain(functions, *first_func_params):
    params = first_func_params
    for func in functions:
        params = func(*params)

但是,只有当所有函数返回元组(“多个值”)或其他序列类型时,这才有效,因为只有序列类型可以解包到函数的参数列表中。

如果函数仅返回单个值,chain 不起作用。

可以简单地检查func的输出是否是一个元组并采取相应的行动。但有更优雅的解决方案吗?

你会如何实现这个?

最佳答案

您可以使用:

if not isinstance(params, tuple):
    params = (params,)

或者捕获如果您尝试在可解压对象之前使用 * 则会引发的 TypeError 异常。

关于python - 如何将一个函数的输出作为输入传递给另一个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32704042/

相关文章:

python - 具有循环依赖的 GraphQL 设计

c++ - 尝试调用 main 中的函数时出错。

python - pandas 列表操作并填充 NA

function - 使用 fminsearch 最大化函数

f# - 当只有一个输入参数时,F# 是否会以不同方式对待参数匹配?

c++ - 为什么我不能将模板参数传递给另一个模板?

python - 了解 os.fork 和 Queue.Queue

python - 在 Windows XP 中使用 Python 隐藏任务栏

python - 在所有任务完成后运行任务

c++ - 如何使模板函数成为另一个模板函数的参数?