Resolver TypeError: el objeto del módulo no se puede llamar en Python
-
Causa del
TypeError: el objeto 'módulo' no se puede llamar
en Python -
Resuelva el
TypeError: el objeto 'módulo' no se puede llamar
en Python
Cada lenguaje de programación encuentra muchos errores. Algunos ocurren en tiempo de compilación, otros en tiempo de ejecución.
Este artículo discutirá el TypeError: el objeto 'módulo' no se puede llamar
. Este error surge cuando la clase/método
y el módulo
tienen los mismos nombres; nos confundimos entre ellos debido a los mismos nombres.
Cuando importamos un módulo, no un método, llamar a ese módulo dará el error porque el módulo no se puede llamar. Solo podemos llamar al método.
Causa del TypeError: el objeto 'módulo' no se puede llamar
en Python
Importaremos un módulo incorporado, socket
, en el siguiente código. Este módulo contiene además una clase llamada socket()
.
Aquí, el nombre del método y el nombre de la clase son los mismos. Si solo importamos el socket
y lo llamamos, el intérprete arrojará un Error de tipo: el objeto 'módulo' no se puede llamar
.
Código de ejemplo:
# Python 3.x
import socket
socket()
Producción :
#Python 3.x
Traceback (most recent call last):
File "<string>", line 2, in <module>
TypeError: 'module' object is not callable
También podemos enfrentarnos a este error en el caso de módulos personalizados que definimos nosotros mismos. Hemos creado el siguiente código y lo hemos guardado en un archivo llamado infomodule.py
.
Código de ejemplo:
# Python 3.x
def infomodule():
info = "meeting at 10:00 am."
print(info)
Luego creamos otro archivo de Python y escribimos el siguiente código, llamando al módulo infomodule.py
. Obtendremos el Error de tipo: el objeto 'módulo' no se puede llamar
.
Código de ejemplo:
# Python 3.x
import infomodule
Print(infomodule())
Producción :
#Python 3.x
Traceback (most recent call last):
File "mycode.py", line 3, in <module>
print(infomodule())
TypeError: 'module' object is not callable
Resuelva el TypeError: el objeto 'módulo' no se puede llamar
en Python
Llame al método/clase desde el módulo
Para corregir este error, podemos importar la clase desde el módulo en lugar de importar el módulo directamente. Arreglará el TypeError: el objeto del módulo no se puede llamar
.
Aquí, creamos con éxito un objeto de la clase socket
.
Código de ejemplo:
# Python 3.x
import socket
socket.socket()
Producción :
<socket.socket fd=876, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0>
En el caso del módulo personalizado, podemos corregir el error de manera similar. Aquí, hemos llamado al método infomodule()
del módulo infomodule
.
Código de ejemplo:
import infomodule
print(infomodule.infomodule())
Producción :
meeting at 10:00 am.
Importar el método/clase desde el módulo
Otra forma de corregir este error es importar la clase del módulo y crear su objeto.
Aquí, importamos la clase socket
del módulo socket
y creamos su objeto.
Código de ejemplo:
# Python 3.x
from socket import socket
socket()
Producción :
<socket.socket fd=876, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0>
También seguiremos el mismo procedimiento en el caso de módulos personalizados. Aquí, importamos el método del módulo y lo llamamos.
Código de ejemplo:
# Python 3.x
from infomodule import infomodule
print(infomodule())
Producción :
meeting at 10:00 am.
I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.
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