如何在函数内解压可变数量参数 (*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 calling signature is fun(t, y).
该函数仅使用 2 个参数调用,您期望有 15 个。那是行不通的。
我尝试过的:
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 calling signature is fun(t, y).
该函数仅使用 2 个参数调用,您期望有 15 个。那是行不通的。