🧩 Eigene Module in Python#
📦 Was ist ein Modul?#
Ein Modul ist einfach eine .py-Datei, die Funktionen, Klassen oder Variablen enthält und in anderen Dateien wiederverwendet werden kann.
# Datei: mathetools.py
def quadrat(x):
return x * x
def kubik(x):
return x * x * x
Du kannst diese Datei jetzt in einem anderen Skript verwenden: Dazu muß die Datei mathetools.py und die Datei main.py im selben Verzeichniss liegen!
# Datei: main.py
import mathetools
print(mathetools.quadrat(3)) # → 9
📌 import
im Detail#
Variante |
Beschreibung |
---|---|
|
Zugriff über |
|
Direktzugriff auf Funktion |
|
(Nicht empfohlen) – importiert alles |
|
Alias für kürzere Schreibweise |
from mathetools import quadrat
print(quadrat(5)) # → 25
🔍 Was bedeutet name == “main”?#
Jede Python-Datei hat eine besondere Variable namens name. Wenn du eine Datei direkt ausführst, ist:
__name__ == "__main__"
Wenn du die Datei aber importierst, ist:
__name__ == "modulname"
✅ Typisches Beispiel:#
# Datei: mathetools.py
def quadrat(x):
return x * x
if __name__ == "__main__":
# Nur ausführen, wenn Datei direkt gestartet wird
print("Test: quadrat(4) =", quadrat(4))
➕ Warum ist das sinnvoll?#
So kannst du ein Modul wiederverwenden und testen gleichzeitig
Beim Importieren stört der Testcode nicht
Gute Praxis für größere Projekte
✍️ Übungsaufgaben#
🔸 Aufgabe 1: Mathemodul#
Erstelle ein Modul mathemodul.py mit fakultaet(n)
und ist_gerade(n)
Verwende es in einem anderen Skript mit import mathemodul
🔸 Aufgabe 2: main-Test#
Füge deinem Modul Testcode unter if __name__ == "__main__"
hinzu
Teste durch direktes Ausführen und durch Import
Module in eigene Ordner auslagern#
📁 Beispielhafte Projektstruktur#
mein_projekt/
│
├── main.py
├── tools/
│ ├── __init__.py
│ ├── mathe.py
│ ├── strings.py
🔸 tools/mathe.py#
def quadrat(x):
return x * x
🔸 tools/strings.py#
def umkehren(text):
return text[::-1]
🔸 tools/init.py#
# Leeres Init erlaubt das Importieren von tools.mathe
# oder du kannst hier gezielt Dinge „exportieren“:
from .mathe import quadrat
from .strings import umkehren
🚀 Import in main.py#
# Variante 1: mit Modulnamen
from tools import mathe
from tools import strings
print(mathe.quadrat(5))
print(strings.umkehren("Hallo"))
# Variante 2: direkt aus __init__.py (wenn dort importiert)
from tools import quadrat, umkehren
print(quadrat(6))
print(umkehren("Welt"))
❓ Was macht __init__.py
konkret?#
Macht einen Ordner zu einem importierbaren Paket
Wird beim ersten Import des Pakets ausgeführt
Kann Variablen, Funktionen, Klassen exportieren (siehe oben)
Kann auch Initialisierungslogik enthalten (selten nötig bei einfachen Projekten)