Beheben Sie TypeError: Module Object Is Not Callable in Python
-
Ursache des
TypeError: 'module' object is not callable
in Python -
Beheben Sie den
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.
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.
LinkedInVerwandter Artikel - Python Error
- Adresse wird bereits verwendet Fehler in Python
- AttributeError: __Exit__ in Python
- AttributeError: 'Dict'-Objekt hat kein Attribut 'Append' in Python
- AttributeError: 'NoneType'-Objekt hat kein Attribut 'Text' in Python
- AttributeError: Int-Objekt hat kein Attribut
- AttributeError: Modul Urllib hat keine Attributanforderung