调用函数时不能调用“ int”对象

时间:2019-02-16 10:35:58

标签: python function

我试图编写一个函数来绘制一些数据,但是用Fpi(mud)运行下面的代码时,出现TypeError:'int' object is not callable

我已经确保名称Fpi没有在任何地方定义为整数,所以我不理解问题所在。

mud=np.array([0.0014700734999999996,
 0.0011840320799999997,
 0.0014232304799999995,
 0.0008501509799999997,
 0.0007235751599999999,
 0.0005770661399999999,
 0.0005581295999999999,
 0.00028703807999999994,
 0.00014850233999999998])

afij=np.array([1.0944,-1.0])

def Fpi(x,B=2.58,Fc=88,mu=0.77):
    return Fc*(1+ ((2*B*x)/(4*pi*Fc))**2(afij[0]+afij[1]*np.log((2*B*x)**2/mu2)))

如果有人能帮助我,我将不胜感激!

2 个答案:

答案 0 :(得分:1)

return Fc*(1+ ((2*B*x)/(4*pi*Fc))**2(afij[0]+afij[1]*np.log((2*B*x)**2/mu**2)))

错误在于以上陈述。如果找不到,请再次查看。

((2*B*x)/(4*pi*Fc))**2(afij[0] ...)

现在可以看到吗?

(...)**2(afij[0] ...)

现在怎么样?

如果没有,那么扰流板就来了。

  

您错过了在2之后添加的运算符。 Python假设(...)**2是某种方法,您正在调用它,但是,它只是一个int,不能用作方法。因此是错误。

编辑:摆脱了反斜杠。

答案 1 :(得分:0)

考虑拆分操作:

mud=np.array([0.0014700734999999996,
 0.0011840320799999997,
 0.0014232304799999995,
 0.0008501509799999997,
 0.0007235751599999999,
 0.0005770661399999999,
 0.0005581295999999999,
 0.00028703807999999994,
 0.00014850233999999998])

afij=np.array([1.0944,-1.0])

def Fpi(x,B=2.58,Fc=88,mu=0.77):
    temp2 = ((2*B*x)/(4*pi*Fc))**2
    temp1 = temp2 (afij[0]+afij[1]*np.log((2*B*x)**2/mu2))
    return Fc*(1+ temp1)

问题是,在temp2之后,您没有任何操作要执行(在您的原始代码中,**2之后)。