Python-Pakete: Struktur, Importieren und Best Practices
Python-Pakete
Erfahren Sie, wie Sie einen wachsenden Codebase mit Python-Paketen organisieren und Ihre eigenen oder Drittanbieter-Module effizient importieren.
Video: Python-Pakete – Code organisieren
Was sind Pakete?
Genau wie wir Dateien auf der Festplatte in Ordnern gruppieren, um Übersichtlichkeit zu schaffen, verwendet Python Pakete, um verwandte Module zusammenzufassen. Ein Paket ist im Grunde ein Verzeichnis, das eine __init__.py-Datei enthält – dies signalisiert Python, den Ordner als Namespace zu behandeln.
Wenn ein Projekt wächst, hält die Zusammenfassung ähnlicher Module in einem Paket das Projekt handhabbar und selbstdokumentierend. Pakete können auch Unterpakete enthalten, was der Verschachtelung von Verzeichnissen entspricht.
Ein Beispiel für ein Spieleprojekt könnte so aussehen:

Module aus einem Paket importieren
Module werden mit der Punktnotation (.) importiert. Um start.py aus dem Paket Game/Level zu importieren, verwenden Sie:
import Game.Level.start
Wenn start.py eine Funktion select_difficulty() definiert, rufen Sie diese mit dem vollständigen Namespace auf:
Game.Level.start.select_difficulty(2)
Um die Schreibarbeit zu reduzieren, können Sie das Modul in den lokalen Namespace importieren:
from Game.Level import start
Nun kann select_difficulty wie folgt aufgerufen werden:
start.select_difficulty(2)
Für noch kürzere Importe holen Sie die Funktion direkt:
from Game.Level.start import select_difficulty
Dann rufen Sie sie einfach auf:
select_difficulty(2)
Zwar ist der Import auf Funktionsebene prägnant, kann aber zu Namenskonflikten führen, wenn verschiedene Module identisch benannte Symbole bereitstellen. Die Verwendung des vollständigen Paketpfads hält den Namespace explizit und sicherer.
Python löst Paketimporte auf, indem es die in sys.path aufgeführten Verzeichnisse durchsucht – genau wie bei regulären Modulen.
Python
- Python-Datentypen meistern: Praxisleitfaden
- Python-Operatoren meistern: Umfassender Leitfaden
- Python pass-Statement meistern: Praxisleitfaden
- Python-Funktionsargumente meistern: Positional, Keyword & Default-Parameter
- Python-Dictionaries meistern: Erstellung, Manipulation und fortgeschrittene Techniken
- Python Iteratoren meistern: Funktionsweise und Erstellung eigener Iteratoren
- Python Closures erklärt: Wie verschachtelte Funktionen Variablen erfassen
- Python datetime meistern: Praktischer Leitfaden zu Datumsangaben, Zeiten und Zeitzonen
- Pythons time.sleep() meistern: Best Practices, Multithreading und Praxisbeispiele
- Python Überblick: Hochlevel, lesbar, interaktiv & objektorientiert