如何在函数内解压可变数量参数 (*args) 的元组?

How do you unpack a tuple of variable number of parameters (*args) inside a function?

我尝试过的:

def df(t,x,*system_constants):
a,b,c,d,e,f,g,h,i,j,k,l,m = system_constants #unpack system constants
    #algebra with these constants to calculate something
    return something

这 returns 调用时出错,说: “ValueError:没有足够的值来解压(预期 13,得到 0)。

此外(无论此错误如何),最好使用带有 for 循环的简短格式解包。这个 for 循环会是什么样子?

def df(t,x,*system_constants):

    for arg in system_constants:
        arg = system_constants
    #algebra with these constants to calculate something
    return something

这里唯一的objective是将元组传递给函数而不会出现上述错误,这样我就可以使用参数而无需按索引调用(即不转换为列表)

该函数作为 scipy.solve_ivp 积分器的参数被调用:

sol = solve_ivp(df, [t0,tf], x0, dense_output = True)

system_constants 存储在同一个脚本中,就像:

system_constants = a,b,c,d,e,f,g,h,i,j,k,l,m

根据the documentation,

The calling signature is fun(t, y).

该函数仅使用 2 个参数调用,您期望有 15 个。那是行不通的。