So erstellen, importieren und verwenden Sie Ihr eigenes Modul in Python

Unabhängig davon, ob Sie Experte oder Anfänger in der Python-Programmierung sind, müssen Sie mit dem Befehl import modules vertraut sein. Als Neuling haben Sie jedoch möglicherweise keine Ahnung, woher diese Module stammen.

Schauen wir uns die Herkunft dieser Module genauer an und erfahren, wie Sie sie erstellen und zur Wiederverwendung importieren.

Eine der besten Methoden bei der Arbeit mit den meisten serverseitigen Sprachen besteht darin, Ihren Code so zu modularisieren, dass er wiederverwendbar ist. Da Python objektorientiert ist, ist es eine dieser Sprachen, die die Wiederverwendbarkeit von Code ermöglicht.

Bei der Codemodularisierung werden Codes geschrieben, die unterschiedliche Anweisungen in Blöcken ausführen. Es wird verwendet, um Aufgaben voneinander zu trennen.

Wenn Sie einen Code modularisieren, geben Sie ihm einen eindeutigen Namen. Dieser Name ist seine Identität und bedeutet, dass Sie das nächste Mal, wenn Sie diesen Codeblock verwenden müssen, nur seinen Namen und nicht den gesamten Code aufrufen müssen.

Diese Praxis macht Ihre Arbeit während eines realen Projekts viel einfacher und schneller. Die Modularisierung des Codes verbessert auch die Ausführungsgeschwindigkeit und erleichtert das Testen. Im Wesentlichen macht es Ihren Code effizienter und lesbarer.

Während unser Beispiel hier nicht auf objektorientierter Programmierung (OOP) basiert, müssen wir es kurz diskutieren, bevor wir mit der Erstellung eines Moduls fortfahren.

Der Code, den Sie manchmal wiederverwenden möchten, kann manchmal als einzelne Funktionen verwendet werden. Es kann aber auch in Form von Methoden in einer Klasse vorliegen. Dann kommt das Konzept von OOP ins Spiel.

OOP ist die Darstellung von Codes als unabhängige Objekte in Form einer Klasse. Jedes Objekt hat dann seine Attribute und Methoden.

Diese Attribute sind die Merkmale der Klasse, während jede Methode das Verhalten der Attribute definiert.

Anstatt langen Code zu schreiben, der weniger effizient ist – eine Konvention in der prozeduralen Programmierung -, wird Ihr Code in OOP effizienter und spezifischer. Der Grund dafür ist, dass Funktionen und Daten in OOP in unabhängigen Klassen gespeichert werden, im Gegensatz zur Trennung beider in der prozeduralen Programmierung.

Jede Klasse, die Sie erstellen, nimmt dann eine Identität an. Wenn Sie also ein benanntes Modul aus einer Klasse benötigen, rufen Sie es mit Bezug auf diese Klasse auf.

Um ein besseres Verständnis zu erhalten, lesen Sie unseren Leitfaden für Anfänger zum Verständnis von OOP .

Schauen wir uns zunächst an, wie wir die Funktion für einen Wortzähler in einer anderen Python-Datei wiederverwenden können. Dieses Handbuch konzentriert sich nur auf das Erstellen wiederverwendbarer Funktionen, die sich nicht in einem Objekt befinden.

Öffnen Sie zunächst eine Eingabeaufforderung an einem beliebigen Ort auf Ihrem Computer, um ein neues Projekt zu starten. In diesem Fall verwenden wir den Projektnamen word_count . Geben Sie dazu mkdir word_count ein .

Verwenden Sie als Nächstes Ihr bevorzugtes Tool für die virtuelle Umgebung, um eine neue virtuelle Umgebung zu erstellen . Wenn Sie bereits eine erstellt haben, aktivieren Sie sie einfach. Stellen Sie sicher, dass Sie sich noch im Verzeichnis Ihres Projekts befinden.

Um die Wortzählerfunktion zu erstellen, versuchen wir zunächst, eine Rohformel für die Berechnung zu finden. Im Allgemeinen können Sie eine Wortzahl finden, indem Sie eins zur Anzahl der Leerzeichen in einem Satz hinzufügen. Beachten Sie, dass Sie möglicherweise keine Wortanzahl benötigen, aber für diese Erklärung ist es wichtig, wie sich die Idee auf die Wiederverwendbarkeit von Code bezieht.

Öffnen Sie als Nächstes einen Texteditor für Ihren Projektspeicherort und erstellen Sie eine neue Python-Datei. In diesem Fall heißt die Datei wordcounter.py . Stellen Sie sicher, dass Sie die richtige Erweiterung .py verwenden .

So sieht die Wordcounter- Datei aus:

Nachdem der Rohcode funktioniert, modularisieren wir ihn, indem wir eine Funktion erstellen, die den Code wiederverwendbar macht:

Das ist es; Wir haben ein Wortzählermodul erstellt. Mal sehen, wie man es wiederverwendet.

Denken Sie daran, dass Sie zuvor eine Datei mit dem Namen wordcounter.py erstellt haben . Diese Datei enthält eine Funktion namens CountWords . Wenn Sie diese Funktion in einer neuen Datei benötigen und nicht den gesamten Code oder die gesamte Funktion neu schreiben möchten, müssen Sie diese Funktion lediglich als Modul in Ihre neue Datei importieren.

Beachten Sie, dass sich in diesem Fall alle Ihre Python-Dateien im selben Verzeichnis befinden müssen. Um sicherzustellen, dass dies der Fall ist, erstellen Sie einfach eine neue Python-Datei in demselben Verzeichnis, in dem Sie die Datei wordcounter.py haben .

So sieht die neue Datei aus:

Im obigen Snippet ist CountWords die Funktion in der Datei wordcounter.py . Um diese Funktion in einer neuen Python-Datei wiederzuverwenden, importieren wir sie aus der übergeordneten Datei ( wordcounter.py ).

Was ist, wenn sich die neue Datei nicht im selben Verzeichnis wie die Moduldatei befindet? In diesen Fällen müssen Sie das Modul mithilfe eines absoluten Imports referenzieren.

Um dies etwas besser zu verstehen, nehmen wir an, dass Sie eine neue Datei im Verzeichnis Ihres Projekts erstellt haben. Die Datei, aus der Sie Ihre Funktion importieren möchten (in diesem Fall Wordcounter ), befindet sich jedoch in einem anderen Ordner im Verzeichnis Ihres Projekts. Nennen wir diesen Ordner subword_count .

Um Ihr Modul aus wordcounter (das sich jetzt im Ordner subword_count befindet ) in eine neue Python-Datei zu importieren, müssen Sie es unbedingt aufrufen. Um zu sehen, wie dies funktioniert, erstellen Sie eine neue Datei im Verzeichnis Ihres Projekts, geben Sie Ihren bevorzugten Namen ein und importieren Sie Ihr Modul wie im folgenden Codefragment beschrieben:

Während eines absoluten Imports durchsucht Python den übergeordneten Ordner (in diesem Fall subword_count ) und sucht die Datei oder das Modul mit der interessierenden Funktion ( CountWords ).

Um die Bedeutung des oben genannten absoluten Imports aufzuschlüsseln, ist subword_count ein Ordner im Verzeichnis Ihres Projekts, der die Datei wordcounter.py enthält. Diese Datei enthält dann die CountWords- Funktion.

Das Modularisieren und Wiederverwenden Ihres Codes ist eine bewährte Methode für jedes Projekt, das Sie ausführen. Wenn Sie OOP schreiben, was Sie wahrscheinlich häufig tun, können Sie eine Klasse aus einem Modul importieren oder eine Funktion aus einer Klasse aufrufen. Wenn sich die Klasse in einem Ordner befindet, importieren Sie sie unbedingt in Ihre neue Datei.

Die gleiche Vorgehensweise gilt für Funktionen, die sich nicht in einem Objekt befinden. Abhängig vom Layout Ihres Projekts können Sie diese wie oben beschrieben explizit oder absolut importieren.