2017-06-02 19 views
3

私は以下のような操作を行うにしようとしています:複数の引数を関数に渡す?

私はそれが一定の条件を満たしている場合、独自の出力に繰り返し my_function()を呼び出すしたいと思います
a = 2 
b = 4 
c = 6 

def my_function(a,b,c): 
    a1 = a*2 
    b1 = b*2 
    c1 = c*2 
    return (a1,b1,c1) 

x = my_function(a,b,c) 

my_function(x) 

を。

はしかし、私は結果を得る:

TypeError: my_function() missing 2 required positional arguments: 'b' and 'c' 

私は、これは基本的な問題であり、他の場所で回答されていると確信していますが、それはために検索することが困難であるという非常にシンプルと思われます。

+1

'x'-tuple * explode *を作成し、それが含んでいる要素と同じ数の入力を作成する' my_function(* x) 'を使用します。 –

+7

'my_function(* x)' - https://docs.python.org/2/tutorial/controlflow.html#unpacking-argument-lists – khelwood

答えて

2

"star args"構文を使用してください。

my_function(*x) 

詳細については、this postを参照してください。

+0

をご覧ください。ありがとうございます。私はそれが何か簡単なことを知っていた! –

4

*タプルをアンパックすると、そのすべての要素が異なるパラメータとして渡されるようになります。

関連する問題