给定下列整数和计算
from __future__ import division a = 23 b = 45 c = 16 round((a/b)*0.9*c)
结果是:
TypeError: 'int' object is not callable.
如何将输出舍入为整数?
通过将 int绑定到其他地方来停止对 round的践踏。
int
round
在您的代码中的其他地方,您的代码看起来是这样的:
round = 42
当你写作的时候
round((a/b)*0.9*c)
它被解释为对绑定到 round的对象的函数调用,round是 int。但是失败了。
问题是无论什么代码将 int绑定到名称 round,都要找到并删除它。
我得到了相同的错误(TypeError: ‘ int’对象不可调用)
def xlim(i,k,s1,s2): x=i/(2*k) xl=x*(1-s2*x-s1*(1-x)) / (1-s2*x**2-2*s1*x(1-x)) return xl ... ... ... ... >>> xlim(1,100,0,0) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 3, in xlim TypeError: 'int' object is not callable
读完这篇文章后,我意识到我忘记了一个 ×
def xlim(i,k,s1,s2): x=i/(2*k) xl=x*(1-s2*x-s1*(1-x)) / (1-s2*x**2-2*s1*x * (1-x)) return xl xlim(1.0,100.0,0.0,0.0) 0.005
坦克
就我而言,我改变了:
return <variable>
与:
return str(<variable>)
尝试以下方法,它必须起作用:
str(round((a/b)*0.9*c))
我当时也面临这个问题,但情况有所不同。
场景:
param = 1 def param(): ..... def func(): if param: var = {passing a dict here} param(var)
这里看起来很简单,也是一个愚蠢的错误,但是由于实际代码中有多行代码,我花了一些时间才弄清楚我使用的变量名和我的函数名是一样的,因此我得到了这个错误。
将函数名更改为其他名称,并且它起作用了。
基本上,根据我的理解,这个错误意味着你要使用一个整数作为函数或者更简单的说,被调用的函数名在代码中的某个地方也作为一个整数使用。 所以,只要找出被调用函数名的所有匹配项,并查看它是否被用作某个整数。
我努力寻找这个,所以,在这里分享它,以便其他人可以节省他们的时间,以防万一他们进入这个问题。
如前所述,您的代码中可能有一个名为 round (类型为 int)的变量,删除该变量应该可以消除该错误。然而,对于 Jupiter 笔记本电脑来说,简单地清除或删除一个单元格可能不会使变量超出作用域。在这种情况下,可以在删除变量后重新启动笔记本以重新开始。
有时候问题是在计算时忘记了一个运算符。 例如: 相当于 print(n-(-1+(math.sqrt(1-4(2*(-n))))/2)) 一定是 print(n-(-1+(math.sqrt(1-4*(2*(-n))))/2))
print(n-(-1+(math.sqrt(1-4(2*(-n))))/2))
print(n-(-1+(math.sqrt(1-4*(2*(-n))))/2))
高温
出现此错误“ TypeError: ‘ int’对象不可调用”有两个原因
考虑一下
a = [5, 10, 15, 20] max = 0 max = max(a) print(max)
这将产生 TypeError: ‘ int’对象不可调用。
只需将变量名“ max”更改为 var (say)。
a = [5, 10, 15, 20] var = 0 var = max(a) print(var)
以上代码将完美运行,没有任何错误! !
a = 5 b = a(a+1) print(b)
这也会产生 TypeError: ‘ int’对象不可调用。
您可能忘记将操作符放在(在本例中为’*’)之间
您总是可以使用下面的方法来消除函数的歧义。
__import__('__builtin__').round((a/b)*0.9*c)
__builtin__是所有内置函数(如 round、 min、 max 等)的模块名。对来自其他模块的函数使用适当的模块名称。
__builtin__
我遇到了这个错误,因为我正在调用我的模型中使用 @ 装修工的一个函数。
@property def volume_range(self): return self.max_oz - self.min_oz
当我试图在序列化程序中调用这个方法时,出现了错误“ TypeError: ‘ int’object is not call”。
def get_oz_range(self, obj): return obj.volume_range()
简而言之,问题在于@property 修饰符将函数转换为 getter.您可以在这个 SO 响应中阅读有关 property ()的更多信息。
对我来说,解决方案是像访问变量一样访问 volul _ range,而不是像调用函数一样调用它:
def get_oz_range(self, obj): return obj.volume_range # No more parenthesis