python多个输出变量作为输入

时间:2018-11-12 01:03:20

标签: python

def function_1(a,b,c,d):
    print('{}{}{}{}'.format(a,b,c,d))
    return

def function_2():
   t=y=u=i= 5
   return t,y,u,i

function_1(function_2())

我希望python首先执行函数2,然后将每个t,y,u和i返回作为function1的输入,但是我却得到:

TypeError: function_1() missing 3 required positional arguments: 'b', 'c', and 'd'

我了解到function2的输出位于单个对象中,或者将function2视为输入函数,而不是执行。

如何更改代码以按预期执行? (来自function2的每个输出变量都被视为到function1的输入变量)

2 个答案:

答案 0 :(得分:2)

您需要一个splat运算符。

function_1(*function_2())

function_2()返回一个元组(5, 5, 5, 5)。要将其作为一组四个参数(而不是一个四元素元组作为一个参数)进行传递,请使用splat运算符*

密切相关的是this question

答案 1 :(得分:0)

这可能有点尴尬,但是实际上您可以将函数作为参数本身pss,然后将其分解!

def function_1(func):
    print('{}{}{}{}'.format(*func))
    return

def function_2():
   t=y=u=i= 5
   return t,y,u,i

function_1(function_2())

输出:

5555