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

使用したい*- スプラット (またはスター) 演算子:

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 に答える