2

所以我正在尝试使用一个返回值的函数,但我希望将这些值返回到不同的函数中。下面是我需要的一个例子。

def returner():
    x=1
    y=2
    z=3
    return x,y,z
def tester(arg1,arg2,arg3):
    print arg1,arg2,arg3

tester(returner())

我想要它做的是打印 1,2,3 但是我无法做到这一点,因为它说“测试器只需要 3 个参数,给定 1 个。” 我有什么遗漏或者这是不可能的吗?

4

1 回答 1

12

您想使用*- splat(或星号)运算符:

tester(*returner())

这是参数解包——它将返回值的元组解包到函数的参数中。

>>> def test():
...    return 1,2,3
... 
>>> def test2(arg1, arg2, arg3):
...    print(arg1, arg2, arg3)
... 
>>> test2(*test())
1 2 3
于 2012-04-29T22:20:03.587 回答