2012-03-19 7 views
28

Teniendo en cuenta los siguientes números enteros y cálculoTypeError: objeto 'int' no es exigible

from __future__ import division 

a = 23 
b = 45 
c = 16 

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

Esto se traduce en:

TypeError: 'int' object is not callable. 

¿Cómo se puede redondear me la salida a un número entero?

+3

Funciona bien en Python 2.7 y 2.4. – Fabian

+2

Creo que su problema está en otro lugar que no sea en el código que se muestra. – Mizipzor

+0

2.7, no era consciente de que es un problema tener una ronda llamada int. – rob

Respuesta

87

En algún otro lugar en su código que tiene algo que se parece a esto:

round = 42 

Luego, cuando se escribe

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

que se interpreta en el sentido de una llamada de función en el objeto unido a round, que es un int. Y eso falla

El problema es que cualquier código enlaza un int con el nombre round. Encuentra eso y quítalo.

+13

para acortar la historia: no mencione una var y una función igual. – Timo

+0

@David Heffernan gracias! –

+1

Ah, el viejo problema 'falso = verdadero'. Este también me atrapó. Python es una amante astuta (y resbaladiza). –

4

Detener el pisoteo en round en otro lugar vinculando un int a él.

+1

¡mucho! Habría buscado horas- – rob

0

me dieron el mismo 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 

después de leer este post me di cuenta que se me olvidó una multiplicación * por lo

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 

tanques

+1

En realidad, era un problema diferente. Ver la respuesta aceptada. –

+1

Sé que esto fue hace mucho tiempo, pero esta respuesta en realidad resolvió mi problema. Vota por mi – Pythogen

0

Sé que esto no es una respuesta, sino una Consejo. Si usa Eclipse con el complemento de Pydev para codificar python, se mostrará una advertencia cada vez que use un símbolo incorporado como nombre de su variable.

Cuestiones relacionadas