Resolver TypeError: el objeto del módulo no se puede llamar en Python

Fariba Laiq 21 junio 2023
  1. Causa del TypeError: el objeto 'módulo' no se puede llamar en Python
  2. Resuelva el TypeError: el objeto 'módulo' no se puede llamar en Python
Resolver TypeError: el objeto del 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.
Fariba Laiq avatar Fariba Laiq avatar

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.

LinkedIn

Artículo relacionado - Python Error