2014-10-05 74 views
-2

当我调用该函数:类型错误 - 浮动对象不可调用的

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 

我不看到时得到一个错误我在函数之外编写代码,是否需要调用函数呢?

+2

可能您已将'float'名称重新分配给一个数字。 – 2014-10-05 21:29:29

+0

要检查名称是否被重新分配,请检查类型(浮点数) - 在2.7我得到“” – 2014-10-05 21:38:39

回答

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;您可以通过删除名称来修复此问题,以便Python可以回退到内置的位置:

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