Beheben Sie TypeError: Module Object Is Not Callable in Python

Fariba Laiq 21 Juni 2023
  1. Ursache des TypeError: 'module' object is not callable in Python
  2. Beheben Sie den TypeError: 'module' object is not callable in Python
Beheben Sie TypeError: Module Object Is Not Callable in Python

Jede Programmiersprache trifft auf viele Fehler. Einige treten zur Kompilierzeit auf, andere zur Laufzeit.

Dieser Artikel behandelt den TypeError: 'module' object is not callable. Dieser Fehler tritt auf, wenn class/method und module denselben Namen haben; Wir werden wegen der gleichen Namen zwischen ihnen verwirrt.

Wenn wir ein Modul und keine Methode importieren, wird beim Aufrufen dieses Moduls der Fehler ausgegeben, weil das Modul nicht aufrufbar ist. Wir können die Methode nur aufrufen.

Ursache des TypeError: 'module' object is not callable in Python

Wir importieren ein eingebautes Modul, socket, in den folgenden Code. Dieses Modul enthält außerdem eine Klasse namens socket().

Hier sind der Methodenname und der Klassenname gleich. Wenn wir nur den socket importieren und aufrufen, wirft der Interpreter einen TypeError: 'module' object is not callable.

Beispielcode:

# Python 3.x
import socket

socket()

Ausgang:

#Python 3.x
Traceback (most recent call last):
  File "<string>", line 2, in <module>
TypeError: 'module' object is not callable

Dieser Fehler kann auch bei benutzerdefinierten Modulen auftreten, die von uns selbst definiert werden. Wir haben den folgenden Code erstellt und in einer Datei namens infomodule.py gespeichert.

Beispielcode:

# Python 3.x
def infomodule():
    info = "meeting at 10:00 am."
    print(info)

Dann haben wir eine weitere Python-Datei erstellt und den folgenden Code geschrieben, der das Modul infomodule.py aufruft. Wir erhalten den TypeError: 'module' object is not callable.

Beispielcode:

# Python 3.x
import infomodule

Print(infomodule())

Ausgang:

#Python 3.x
Traceback (most recent call last):
File "mycode.py", line 3, in <module>
 print(infomodule())
TypeError: 'module' object is not callable

Beheben Sie den TypeError: 'module' object is not callable in Python

Rufen Sie die Methode/Klasse aus dem Modul auf

Um diesen Fehler zu beheben, können wir die Klasse aus dem Modul importieren, anstatt das Modul direkt zu importieren. Es behebt den TypeError : module object is not callable.

Hier haben wir erfolgreich ein Objekt der Klasse socket erstellt.

Beispielcode:

# Python 3.x
import socket

socket.socket()

Ausgang:

<socket.socket fd=876, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0>

Im Fall des benutzerdefinierten Moduls können wir den Fehler auf ähnliche Weise beheben. Hier haben wir die Methode infomodule() des Moduls infomodule aufgerufen.

Beispielcode:

import infomodule

print(infomodule.infomodule())

Ausgang:

meeting at 10:00 am.

Importieren Sie die Methode/Klasse aus dem Modul

Eine andere Möglichkeit, diesen Fehler zu beheben, besteht darin, die Klasse aus dem Modul zu importieren und ihr Objekt zu erstellen.

Hier haben wir die Klasse socket aus dem Modul socket importiert und zu ihrem Objekt gemacht.

Beispielcode:

# Python 3.x
from socket import socket

socket()

Ausgang:

<socket.socket fd=876, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0>

Das gleiche Verfahren werden wir auch im Falle von benutzerdefinierten Modulen anwenden. Hier haben wir die Methode aus dem Modul importiert und aufgerufen.

Beispielcode:

# Python 3.x
from infomodule import infomodule

print(infomodule())

Ausgang:

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

Verwandter Artikel - Python Error