将多个参数传递给多个元组集中的函数-python

将多个参数传递给多个元组集中的函数-python,python,function,functional-programming,tuples,Python,Function,Functional Programming,Tuples,本质上,我有一个函数,我需要在两个不同的时刻传递给一组值(这里由于实际原因跳过),因此,我认为需要将所有参数拆分为两个元组集,然后传递第一个元组集,然后再传递第二个元组集。我错误地认为,python会将函数的所有可用n个参数分配给元组传递的值,然后将其余参数分配给第二个元组。事实并非如此: 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)) 事实上

本质上,我有一个函数,我需要在两个不同的时刻传递给一组值(这里由于实际原因跳过),因此,我认为需要将所有参数拆分为两个元组集,然后传递第一个元组集,然后再传递第二个元组集。我错误地认为,python会将函数的所有可用n个参数分配给元组传递的值,然后将其余参数分配给第二个元组。事实并非如此:

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'
回溯(最近一次呼叫最后一次):
文件“C:/Users/francesco/PycharmProjects/fund analysis/test_sheet.py”,第7行,在
打印(示例2(e,r))
TypeError:示例_F_2()缺少2个必需的位置参数:“z”和“g”

我能做什么?我猜本页中的某些内容应该会起作用(),但我自己无法做到这一点

一种非常简单的方法是连接元组,然后在将元组传递给函数时将其解压:

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

一种非常简单的方法是连接元组,然后在将元组传递给函数时将其解压缩:

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

也许您可以使用以下内容:

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

也许您可以使用以下内容:

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

在那里,我一直在想,我越来越擅长Python和我所有的奇特函数。最好还是回到最基本的方面。谢谢你的快速回答!在那里,我一直在想,我越来越擅长Python和我所有的奇特函数。最好还是回到最基本的方面。谢谢你的快速回答!