TypeError - 浮动对象不可调用

时间:2014-10-05 21:26:15

标签: python

当我调用该函数时:

def dif(a,b,c,g):
     y = float((3*a)*(g**2)+(2*b)*g + c)
     return y

我收到错误:

TypeError: 'float' object is not callable

a = 1
b = 3
c = -3
d = -1
g = 2.33333333

当我在函数外部编写代码时,我没有看到出错,是否与调用函数有关?

1 个答案:

答案 0 :(得分:3)

您将float绑定到浮点数,屏蔽内置函数:

>>> def dif(a,b,c,g):
...      y = float((3*a)*(g**2)+(2*b)*g + c)
...      return y
... 
>>> a = 1
>>> b = 3
>>> c = -3
>>> d = -1
>>> g = 2.33333333
>>> dif(a, b, c, g)
27.333333266666664
>>> float = 4.0
>>> dif(a, b, c, g)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 2, in dif
TypeError: 'float' object is not callable

请注意float = 4.0行。

通过而不是分配给float来解决此问题。你可以修复&#39;这通过删除名称使Python可以回退到内置:

>>> del float
>>> dif(a, b, c, g)
27.333333266666664