Modul 1 — Was ist if __name__ == "__main__"?
Ein Schalter, der zwischen „direkt ausgeführt" und „importiert" unterscheidet.
Begriff
Jede Python-Datei hat eine eingebaute Variable __name__. Wird die Datei
direkt ausgeführt (python meine_datei.py), enthält
__name__ den Wert "__main__". Wird die Datei dagegen von einer
anderen Datei importiert, enthält __name__ den Modulnamen.
Mit dem Check
if __name__ == "__main__":
<Skript-Code>
trennst du sauber zwischen Bibliotheks-Nutzung (Funktionen werden importiert) und Skript-Nutzung (das Programm soll loslaufen). Importiert jemand deine Datei, läuft der Main-Block nicht — die Funktionen stehen aber zur Verfügung.
Beispiel 1.1 — __name__ ausgeben
Python wird geladen…Prüfung
Modul 2 — Aufbau einer sauberen Datei
Funktionen oben, Ablauf im Main-Block.
Empfohlenes Layout
Eine gut strukturierte Python-Datei besteht aus zwei Teilen:
- Oben: alle
def-Funktionen — sie definieren, was das Programm tun kann. - Unten im
if __name__ == "__main__":-Block: die konkrete Reihenfolge der Aufrufe — was diesmal getan werden soll.
Im Main-Block werden Variablen angelegt, die Funktionen mit diesen Variablen aufgerufen und die Rückgaben in neuen Variablen gespeichert.
Beispiel 2.1 — Funktion oben, Aufruf unten
Python wird geladen…Prüfung
Modul 3 — Aufruf, Rückgabe, Variablen
Das wiederkehrende Muster im Main-Block.
Muster
Im Main-Block gilt immer:
- Eingaben zuerst in Variablen speichern (z. B.
name = "Mia"). - Funktion mit diesen Variablen aufrufen.
- Rückgabe in einer neuen Variable auffangen
(z. B.
text = hallo(name)). - Erst dann
print()aufrufen.
So lassen sich Zwischenergebnisse später noch weiterverwenden, und der Code bleibt übersichtlich.
TippIn den Aufgaben
Bei den meisten Aufgaben liest du die Eingabewerte im Main-Block mit input() ein
(wie im Modul „Variablen" eingeführt). Die Prüfung speist diese Werte automatisch
ein und vergleicht deine Ausgabe Zeichen für Zeichen — gib dort nur das Geforderte aus.
Bei zwei Aufgaben (Teil 4 und Teil 6) setzt du die Werte dagegen selbst
im Main-Block — ohne input(). Dort steht das Definieren der Funktion im Mittelpunkt,
und die Prüfung ruft deine Funktion direkt mit mehreren Werten auf.
Beispiel 3.1 — Eingabe, Aufruf, Rückgabe
Python wird geladen…Prüfung
Mehrere Rückgabewerte
Eine Funktion darf mit return a, b mehrere Werte gleichzeitig zurückgeben.
Auf der Aufrufseite werden sie auf zwei Variablen verteilt — das nennt sich
Tupel-Unpacking.
Beispiel 3.2 — zwei Rückgaben auf zwei Variablen
Python wird geladen…Prüfung
Modul 4 — Warum überhaupt der Check?
Was passiert ohne if __name__ == "__main__"?
Das Problem
Schreibst du Funktionsaufrufe und print() einfach direkt in die
Datei (ohne Main-Block), werden sie auch beim Import ausgeführt.
Das ist fast nie das, was du willst — du wolltest ja nur die Funktion benutzen.
Mit dem Main-Block ist klar: „Diese Zeilen laufen nur, wenn ich die Datei direkt starte".
Beispiel 4.1 — direkte Ausführung mit Main-Block
Python wird geladen…Prüfung
TippFaustregel
In dieser Aufgabenreihe gilt durchgängig:
Funktion oben definieren,
im Main-Block die Werte bereitstellen (per input() einlesen
oder selbst setzen),
die Funktion aufrufen und das Ergebnis ausgeben.
Du musst also nicht alles einlesen — manchmal legst du die Werte einfach selbst fest.
Quellen & weiterführende Literatur
Wo das hier vermittelte Wissen offiziell dokumentiert ist.
Offizielle Python-Dokumentation
- Python Tutorial — 6.1.1. Executing modules as scripts: docs.python.org/3/tutorial/modules.html#executing-modules-as-scripts
- Python Library Reference —
__main__— Top-level code environment: docs.python.org/3/library/__main__.html
Tutorials & Lehrbücher
- Real Python — Defining Main Functions in Python: realpython.com/python-main-function
- Theis, Thomas: Einstieg in Python. 7. Auflage, Rheinwerk Verlag, 2023 — Abschnitt zu Modulen und Skripten.
- Klein, Bernd: Einführung in Python 3. 4. Auflage, Hanser Verlag, 2021 — Kapitel zu Modulen.