Error de Python: el objeto no se puede llamar
Discutiremos el tipo de error el objeto no se puede llamar
y veremos cómo podemos solucionarlo. También discutimos el uso de la función invocable para verificar si los objetos son invocables o no en Python.
Solucionar el error de Python el objeto no se puede llamar
Cuando observamos este error (“el objeto no se puede llamar”), probablemente necesitemos comprender qué está sucediendo dentro del script de Python. Por ejemplo, tenemos algunas líneas de código para demostrar el problema y cómo solucionarlo.
Código de error:
v = 5
g = 9
int = 3
print(int(g / v * int))
Producción :
TypeError: 'int' object is not callable
Tenemos tres variables v
, g,
e int
. Estamos experimentando este problema porque definimos una variable llamada int
que es una función.
El int
es una función integrada de Python, por lo que no podemos usar int
como nombre de variable; por lo tanto, cuando se ejecuta el script de Python, busca llamar al nombre de variable int
. El tipo de nombre restringido int
dentro de Python, y como resultado, le mostrará este error cuando lo usemos como una variable.
Arreglamos el error cambiando el nombre de la variable y ejecutando este script nuevamente.
Código fijo:
v = 5
g = 9
d = 3
print(int(g / v * d))
Producción :
5
Recuerde que cuando ejecute cualquier programa con una función dentro de su secuencia de comandos de Python, nunca debe poner esa función como nombre de variable porque enfrentará el mismo problema. El mismo problema ocurre con cuerdas, flotadores, etc.
Si recibe este error, primero debe verificar si alguna de sus variables llama a un nombre de función o no. No podemos llamar a una variable que almacena valores de tipo de datos como en el siguiente ejemplo de código.
Código de error:
x = "josh"
x()
Producción :
TypeError: 'str' object is not callable
la función llamable()
en Python
Si un objeto se puede llamar como una función, la función llamable()
devuelve True
y acepta un parámetro, que puede ser cualquier objeto.
Por ejemplo, si tenemos una variable que es x
igual a 42
, esta variable se refiere a un número entero en la memoria. Podemos pasar x
a la función llamable()
e imprimir el resultado inmediatamente para ver si devuelve un valor true
o false
.
Al ejecutar esto, el valor devuelto es “false” porque el número entero 42
no se puede llamar.
Código de ejemplo:
x = 42
print(callable(x))
Producción :
False
Veamos qué sucede si la función callable()
se llama a sí misma; escribimos callable dentro de la función callable()
e imprimimos esto. Veremos que el resultado es True
, y también podemos pasar la función print
, que obviamente también es invocable.
print(callable(callable))
print(callable(print))
Producción :
True
True
Supongamos que definimos nuestros objetos personalizados, no objetos incorporados, donde se pueden llamar o no. Vamos a crear una función llamada FUNC()
que devuelva algo.
Pasamos este nombre de función a la función llamable()
e imprimimos la salida, y esto es invocable. Si llamamos al valor de retorno usando FUNC()
, será un número entero y lo pasaremos a la función callable()
. La salida devolverá False
, que no se puede llamar porque no podemos llamar a un número entero que ya miramos esto.
Ejemplo:
def FUNC():
return 51
print(callable(FUNC))
print(callable(FUNC()))
Producción :
True
False
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedInArtículo relacionado - Python Error
- Administrar fallas de segmentación en Python
- Archivo <Stdin>, Línea 1, en <Módulo> Error en Python
- Arreglar AttributeError: el objeto 'generador' no tiene atributo 'siguiente' en Python
- Arreglar el comando cl.exe falló: no existe tal archivo o directorio en Windows
- Arreglar NameError: la variable no está definida en Python
- Arreglar Socket.Gaierror: [Errno 8] Nodename ni Servname proporcionado, o desconocido en Python