TypeError: El objeto 'float' no se puede llamar

¿Así que se te ha presentado el TypeError: el objeto 'float' no es invocable en Python, pero no sabes cómo solucionarlo? Pues sigue leyendo para que podamos darte una solución.

Lo primero es una visión general de un flotador

Un float es cualquier número que puede contener un decimal que separa un entero de las fracciones a la derecha del punto decimal.

Como ejemplo, en el siguiente código, tenemos exactamente el mismo número. Pero cuando un ordenador llega a leerlo, los trata de forma diferente, debido al hecho de que b tiene un punto decimal y una fracción a su derecha.

a = 1
b = 1.0

print (type(a))
print (type(b))

Output:
<class 'int'>
<class 'float'>

Entonces, ¿en qué parte del código se produce este error?

En el siguiente código, se produce el error. La razón detrás de esto es que float es una función real que cambia un valor a un tipo de datos float.

Como resultado, no puede asignar un nombre de variable como "float" y luego llamarlo por separado en su código. Python específicamente no permite que un programador utilice una función como nombre de variable.

a= float(10)
b= float(11)
c= float(12)
float = a

d = float(a/b*c)
print(d)

Output:
d = float(a/b*c)
TypeError: 'float' object is not callable

¿Cómo se arregla esto?

Para solucionarlo, cambiamos el nombre de la variable "float" por otro, y nos aseguramos de que el nuevo nombre no sea otro nombre de función.

Como se puede ver cuando hacemos esto, la salida de abajo se ejecuta como se espera sin errores:

a= float(10)
b= float(11)
c= float(12)
float_value = a ===> Esta línea fue corregida desde arriba de "float" a "float_value"

d = float(a/b*c)
print(d)

Salida: 
10.909090909090908

En resumen, el quid de este problema es que al crear una variable, ésta no puede ser un nombre de función.

Puedes ver posts similares aquí en TypeErrors.

¿Has visto estos puestos?

TypeError: El objeto 'float' no se puede llamar

TypeError: El objeto 'int' no se puede llamar

Deje una respuesta

Su dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con un *.