TypeError: объект 'int' не вызывается - PullRequest
38 голосов
/ 19 марта 2012

С учетом следующих целых чисел и расчета

from __future__ import division

a = 23
b = 45
c = 16

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

Это приводит к:

TypeError: 'int' object is not callable.

Как можно округлить вывод до целого числа?

Ответы [ 4 ]

113 голосов
/ 19 марта 2012

Где-то еще в вашем коде у вас есть что-то похожее на это:

round = 42

Затем, когда вы пишете

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

, что интерпретируется как значение вызова функции на границе объектадо round, что int.И это не помогает.

Проблема в том, какой код связывает int с именем round.Найдите это и удалите.

5 голосов
/ 19 марта 2012

Прекратите топать на round где-нибудь еще, привязав int к нему.

3 голосов
/ 17 июля 2015

Я получил ту же ошибку

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

танков

2 голосов
/ 11 апреля 2018

В моем случае я изменил:

return <variable>

с:

return str(<variable>)

попробуйте следующее, и оно должно работать:

str(round((a/b)*0.9*c))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...