接受函数参数的返回值

IT *_*nja 2 python python-2.7

所以我试图使用一个返回值的函数,但我希望这些值返回到一个不同的函数.我需要的一个例子如下.

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

tester(returner())
Run Code Online (Sandbox Code Playgroud)

我想要它做的是打印1,2,3然而我无法用它来做这件事,因为它说"测试者需要3个参数,1个给定." 我有什么遗失或者这是不可能的吗?

Gar*_*tty 12

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

tester(*returner())
Run Code Online (Sandbox Code Playgroud)

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

>>> def test():
...    return 1,2,3
... 
>>> def test2(arg1, arg2, arg3):
...    print(arg1, arg2, arg3)
... 
>>> test2(*test())
1 2 3
Run Code Online (Sandbox Code Playgroud)

  • @RaymondHettinger [Splat也被使用](http://stackoverflow.com/questions/2322355/proper-name-for-python-operator).我确实说过*它将返回值的元组解包到参数*中,这是'参数解包'并且有更多解释.无论哪种方式,我编辑进行澄清. (2认同)