Python-Module
Ein Python-Modul ist im Wesentlichen eine Python-Skriptdatei, die Variablen, Funktionen und Klassen enthalten kann. Python-Module helfen uns dabei, unseren Code zu organisieren und dann in anderen Klassen oder Python-Skripten zu referenzieren.
Eine Datei, die Python-Definitionen und -Anweisungen enthält, wird als Python-Modul bezeichnet. Der Dateiname ist also natürlich der Modulname, der mit dem Suffix .py versehen wird. Um dies besser zu verstehen, erstellen wir ein Python-Modul, um es vollständig zu erkunden. Erstellen Sie zunächst eine Datei mit dem Namen printNumbers.py mit den folgenden Inhalten.
#print 1 to n
for i in range(n):
print(i+1)
#print n to 1
for i in range(n):
print(n-i)
Importieren Sie nun dieses Modul im Python-Interpreter mit dem folgenden Befehl;
import printNumbers
Dieser Importbefehl sucht nach der Datei printNumbers.py im aktuellen Verzeichnis und in den PATH-Variablen-Standorten. Sobald die Datei gefunden ist, steht der Code in der Datei zur Verwendung zur Verfügung. Um jetzt auf die Funktion des Moduls zuzugreifen, müssen wir den Modulnamen wie unten verwenden:
Manchmal, wenn das Modul groß ist, um das Aufrufen der Funktion zu erleichtern, können wir den Import wie unten umbenennen:
Importieren einer spezifischen Funktion eines Python-Moduls
Manchmal ist es unnötig, alle Funktionen eines Python-Moduls zu importieren. Wir benötigen möglicherweise nur eine oder zwei Funktionen. In diesem Fall können wir die folgende Variante der Importanweisung verwenden;
Eine Sache, die hier zu beachten ist, ist, dass wir beim Import von printForward diesen in die aktuelle Symboltabelle aufnehmen. Daher müssen wir die Funktion nicht wie – printNumbers.printForward() aufrufen. Eine andere Variante kann manchmal nützlich sein. Hier haben wir, wie zuvor, Umbenennungen verwendet, um die Verwendung der Funktion zu erleichtern.
Wenn wir außerdem alle Namen importieren möchten, die ein Modul definiert, gibt es eine weitere Variante für den Import. Dies importiert alle Namen, außer denen, die mit einem Unterstrich (_) beginnen. Aber das ist keine ideale Praxis, da dies eine unbekannte Menge von Namen in den Interpreter einführt.
FAQs zu Python-Modulen
Was sind die eingebauten Module in Python?
Es gibt viele eingebaute Module in Python. Einige der wichtigen sind – collections, datetime, logging, math, numpy, os, pip, sys und time. Sie können den Befehl help(‚modules‘) im Python-Shell ausführen, um die Liste der verfügbaren Module zu erhalten.
Was ist der Unterschied zwischen Modul und Paket in Python?
Ein Python-Paket ist eine Sammlung von Python-Modulen. Ein Python-Modul ist eine einzelne Python-Datei, während ein Python-Paket ein Verzeichnis mit mehreren Python-Skripten und einer __init__.py-Datei ist, die die Paketdetails definiert.
Wo finde ich die Liste der Python-Module?
Sie können die Liste der Python-Module auf ihrer offiziellen Seite des Python Module Index finden. Wenn Sie jedoch nach den Python-Modulen suchen, die Ihnen zur Verfügung stehen, können Sie den Befehl help(‚modules‘) im Python-Shell ausführen, um die Liste der verfügbaren Module zu erhalten.
Wie kann ich ein Modul aus einem anderen Verzeichnis importieren?
Wenn wir versuchen, ein Python-Modul zu importieren, wird es im aktuellen Verzeichnis und am Standort der PATH-Variablen gesucht. Wenn Ihre Python-Datei sich nicht an diesen Orten befindet, erhalten Sie einen ModuleNotFoundError. Die Lösung besteht darin, das sys-Modul zu importieren und dann das erforderliche Verzeichnis zu seiner Path-Variable hinzuzufügen. Der folgende Code zeigt den Fehler, wenn wir versuchen, aus einem anderen Verzeichnis zu importieren, und wie ich ihn behebe, indem ich sein Verzeichnis zur Path-Variable hinzufüge.
$ python3.7
Python 3.7.0 (v3.7.0:1bf9cc5093, Jun 26 2018, 23:26:24)
[Clang 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import test123
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'test123'
>>> import sys
>>> sys.path.append('/Users/pankaj/temp')
>>> import test123
>>> test123.x
10
>>> test123.foo()
foo
>>>