当我调用该函数时:
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
当我在函数外部编写代码时,我没有看到出错,是否与调用函数有关?
答案 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