TypeError:“int”对象不可调用,slidercrank机制

2024-10-04 01:28:28 发布

您现在位置:Python中文网/ 问答频道 /正文

现在我正在编写这个程序,在python中模拟曲柄滑块机构的运动。 当我犯这个错误时,我陷入了死胡同。正是这种方法无缘无故地抛出了一个错误。在

def returnSliderAcceleration(a,b,theta_1,omega_1,alpha_1): 
    rad_temporary = theta_1 * np.pi / 180
    rad_temporary_2 = returnConnectorAngle(a,b,theta_1)
    omega_2 = returnConnectorVelocity(a,b,theta_1,omega_1)
    alpha_2 = returnConnectorAcceleration(a,b,theta_1,omega_1,alpha_1)
    part_1 = a((alpha_1 * np.sin(rad_temporary)) + ((omega_1**2)*np.cos(rad_temporary)))
    part_2 = b((alpha_2 * np.sin(rad_temporary_2)) + ((omega_2**2)*np.cos(rad_temporary_2)))
    slider_acceleration = -1*(part_1 + part_2)
    return slider_acceleration

它使用的其他方法有:

^{pr2}$

错误:

slider_acceleration = -1*(a((alpha_1 * np.sin(rad_temporary)) + ((omega_1**2)*np.cos(rad_temporary)))+ b((alpha_2 * np.sin(rad_temporary_2)) + ((omega_2**2)*np.cos(rad_temporary_2))))
TypeError: 'int' object is not callable

Tags: 方法程序alpha错误npsincosslider
1条回答
网友
1楼 · 发布于 2024-10-04 01:28:28

在查看代码之前,让我们更仔细地了解一下Python给您带来的错误:

TypeError: 'int' object is not callable

在本例中,您的错误是TypeError。这意味着某些Python类型的使用不正确。更详细的描述告诉我们另外两个事实:

  1. 错误使用的类型是int
  2. 问题是我们试图调用int,但我们做不到——我们可以调用functions和{},但不能ints

这里有一个简单的方法来产生完全相同的问题:

^{pr2}$

我们得到这个错误是因为我们试图使用x作为参数为10的函数,但是x只是一个int。现在我们理解了这个错误的含义,让我们看看您的代码。下面是有问题的一行,分成几行:

slider_acceleration = -1 * (
    a(
        (alpha_1 * np.sin(rad_temporary)) + \
            ((omega_1**2)*np.cos(rad_temporary))
    ) + b(
        (alpha_2 * np.sin(rad_temporary_2)) + \
            ((omega_2**2)*np.cos(rad_temporary_2))
    )
)

看起来您使用了a和{}作为函数,但是它们是吗?快速看看它们在其他功能中是如何使用的,我怀疑没有。像你这样做也许是为了:

slider_acceleration = -1 * (
    a * (
        (alpha_1 * np.sin(rad_temporary)) + \
            ((omega_1**2)*np.cos(rad_temporary))
    ) + b * (
        (alpha_2 * np.sin(rad_temporary_2)) + \
            ((omega_2**2)*np.cos(rad_temporary_2))
    )
)

相关问题 更多 >