TypeError: 'int' object is not callable

2019-01-01 09:17发布

问题:

Given the following integers and calculation

from __future__ import division

a = 23
b = 45
c = 16

round((a/b)*0.9*c)

This results in:

TypeError: \'int\' object is not callable.

How can I round the output to an integer?

回答1:

Somewhere else in your code you have something that looks like this:

round = 42

Then when you write

round((a/b)*0.9*c)

that is interpreted as meaning a function call on the object bound to round, which is an int. And that fails.

The problem is whatever code binds an int to the name round. Find that and remove it.



回答2:

Stop stomping on round somewhere else by binding an int to it.



回答3:

I got the same error

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

after read this post I realize that I forgot a multiplication * so

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

tanks



回答4:

In my case I changed:

return <variable>

with:

return str(<variable>)

try with the following and it must work:

str(round((a/b)*0.9*c))