Python-Pakete: Wie erstelle und importiere ich sie?

In diesem Artikel erfahren Sie, wie Sie Ihre Codebasis mithilfe von Python-Paketen in saubere, effiziente Module aufteilen. Außerdem lernen Sie, Ihre eigenen Pakete oder Pakete von Drittanbietern in Ihr Python-Programm zu importieren und zu verwenden.

Video: Python-Pakete: Organisieren Sie Ihren Code

Was sind Pakete?

Normalerweise speichern wir nicht alle unsere Dateien auf unserem Computer am selben Ort. Wir verwenden eine gut organisierte Hierarchie von Verzeichnissen, um den Zugriff zu erleichtern.

Ähnliche Dateien werden im selben Verzeichnis gespeichert. Beispielsweise können alle Songs im Verzeichnis " Musik " gespeichert werden . Analog dazu verfügt Python über Pakete für Verzeichnisse und Module für Dateien.

Da unser Anwendungsprogramm mit vielen Modulen größer wird, platzieren wir ähnliche Module in einem Paket und verschiedene Module in verschiedenen Paketen. Dies macht ein Projekt (Programm) einfach zu verwalten und konzeptionell klar.

Da ein Verzeichnis Unterverzeichnisse und Dateien enthalten kann, kann ein Python-Paket Unterpakete und Module enthalten.

Ein Verzeichnis muss eine Datei mit dem Namen enthalten __init__.py, damit Python sie als Paket betrachtet. Diese Datei kann leer gelassen werden, aber im Allgemeinen platzieren wir den Initialisierungscode für dieses Paket in dieser Datei.

Hier ist ein Beispiel. Angenommen, wir entwickeln ein Spiel. Eine mögliche Organisation von Paketen und Modulen könnte in der folgenden Abbildung dargestellt sein.

Paketmodulstruktur in der Python-Programmierung

Modul aus einem Paket importieren

Wir können Module aus Paketen mit dem Operator dot (.) Importieren.

Wenn Sie beispielsweise das startModul im obigen Beispiel importieren möchten , können Sie dies wie folgt tun:

 import Game.Level.start

Wenn dieses Modul eine Funktion mit dem Namen enthält select_difficulty(), müssen wir den vollständigen Namen verwenden, um darauf zu verweisen.

 Game.Level.start.select_difficulty(2)

Wenn dieses Konstrukt langwierig erscheint, können wir das Modul ohne das Paketpräfix wie folgt importieren:

 from Game.Level import start

Wir können die Funktion jetzt einfach wie folgt aufrufen:

 start.select_difficulty(2)

Eine andere Möglichkeit, nur die erforderliche Funktion (oder Klasse oder Variable) aus einem Modul innerhalb eines Pakets zu importieren, wäre wie folgt:

 from Game.Level.start import select_difficulty

Jetzt können wir diese Funktion direkt aufrufen.

 select_difficulty(2)

Obwohl einfacher, wird diese Methode nicht empfohlen. Die Verwendung des vollständigen Namespace vermeidet Verwirrung und verhindert, dass zwei gleiche Bezeichnernamen kollidieren.

Beim Importieren von Paketen sucht Python in der Liste der in definierten Verzeichnisse sys.path, ähnlich wie beim Modul-Suchpfad.

Interessante Beiträge...