在函数中返回2个值

时间:2019-02-24 16:33:18

标签: python

简而言之,我正在尝试实现以下内容:

def function_one(value):
...
return a, b

def function_two(a, b):
...

当我尝试

function_two(function_one(value))

我收到一条错误消息: “ function_two()缺少1个必需的位置参数:'b'”

有没有办法使这项工作按预期进行? 谢谢!

1 个答案:

答案 0 :(得分:5)

您必须将返回的元组解压缩为单独的参数:

rm(list=ls(all=TRUE)[sapply(mget(ls(all=TRUE)), function(x) !is.environment(x))])

另一个选择是更改function_two(*function_one(value)) 以接受单个参数,然后将其解压缩到函数中或按原样使用它。这是否一个好主意取决于上下文。