让我们举个例子。在某些图书馆,如" scipy.integrate"调用类似" odeint"的函数(积分函数)必须表示为" odeint(func,y0,T,...)"在哪里" func"是一个函数的名称,必须使用两个参数(y,t0),y向量和t0标量预定义。
问题是如何使用" odeint"如果已定义的函数" func"用两个参数指定,但顺序相反"(t0,y)"。
祝你好运。
答案 0 :(得分:2)
您可以使用lambda函数对参数进行重新排序,如下所示:
odeint(lambda p, q: func(q, p), y0, T, ...)
或者,如果所有odeint
都在参数上调用func
并且确实与参数直接交互,那么你可以在主调用中交换订单:
odeint(func, T, y0, ...)
答案 1 :(得分:0)
您可以按任意顺序显式调用参数:
def func(a, b, c):
print('a = {}'.format(a))
print('b = {}'.format(b))
print('c = {}'.format(c))
x = 1
y = 2
z = 3
func(a = x, b = y, c = z)
func(c = z, b = y, a = x)
func(b = y, c = z, a = x)
P.S。我不是100%肯定,但请尝试odeint(func, y0 = y0, T = T, ...)
或odeint(func, T = T, y0 = y0, ...)
。