我在下面的代码中写了一个速度和加速度的函数:
from math import exp
def kinematics(x,t,dt=1E-4):
x=x(t)
v_x=(x(t+dt)-x(t-dt))/(2*dt)
a_x=(x(t+dt)-2*x(t)+x(t-dt))/(dt**2)
return x,v_x,a_x
x=lambda t:exp(-(t-4)**2)
print(kinematics(x,5,dt=1E-5))然而,我得到了以下错误:
TypeError: 'float' object is not callable有谁能指出这个错误吗?
发布于 2019-05-03 14:24:50
您正在将lambda重新赋值为lambda的返回值。
x=x(t)在这之后,x不再是一个lambda,它是一个float。
发布于 2019-05-03 14:24:45
您正在修改函数第一行中的x:
def kinematics(x,t,dt=1E-4):
x=x(t)
...使用以下命令:
def kinematics(x,t,dt=1E-4):
v_x=(x(t+dt)-x(t-dt))/(2*dt)
a_x=(x(t+dt)-2*x(t)+x(t-dt))/(dt**2)
return x(t),v_x,a_xhttps://stackoverflow.com/questions/55964278
复制相似问题