2016-06-18 10 views
0

本質的に私は2つの異なる瞬間(ここでは実際の理由でスキップされています)に値の束に渡す必要がある関数を持っています。最初のセットを渡した後、2番目の考え方 - 誤って - Pythonは関数の利用可能なn個のパラメータすべてをタプルで渡された値に割り当て、残りを2番目のタプルで割り振ることになります。それはそうではありません。実際には複数のタプルセットで機能するために複数のパラメータを渡す - python

def example_F_2(x, y, z, g): 
    return x * y + z * g 

e = (1,2) 
r = (3,4) 
print(example_F_2(e, r)) 

Traceback (most recent call last): 
    File "C:/Users/francesco/PycharmProjects/fund-analysis/test_sheet.py", line 7, in <module> 
    print(example_F_2(e, r)) 
TypeError: example_F_2() missing 2 required positional arguments: 'z' and 'g' 

私は何ができるのでしょうか?私自身は非常に単純な方法は、タプルを連結して、あなたはあなたの関数に渡すとしてそれらを解凍することである

答えて

2

私は、このページから何かを推測しています動作するはずです(https://docs.python.org/3.5/library/functools.html)が、私はそれを行うことができなかった:

print(example_F_2(*(e+r))) 
+0

をし、そこに私はすべての私の空想の機能ではPythonで良くなったことを考えていました。基本に戻るのが良い。迅速なご回答をありがとうございました! – Asher11

0

は、おそらくあなたは、このようなものを使用することができます

def example_F_2(e=None, r=None): 
    first_term = 0 
    second_term = 0 
    if e is not None: 
     first_term = e[0] * e[1] 
    if r is not None: 
     second_term = r[0] * r[1] 
    return first_term + second_term 


e = (1, 2) 
r = (3, 4) 
print example_F_2(e, r) 
> 14 
print example_F_2(e=e) 
> 2 
print example_F_2(r=r) 
> 12 
関連する問題