🐍 Python Nachhilfe & Selbstlern-Kurs

Objektorientierte Programmierung (OOP)

Lerne Schritt für Schritt, wie du eigene Klassen baust, Methoden nutzt und komplexe Programme strukturierst.

👋 Willkommen zu deiner Übungsreihe!

Bisher hast du in Python schon viel gelernt: Variablen, Schleifen, Bedingungen, Listen, Dictionaries und Funktionen. Jetzt machen wir den nächsten großen Schritt in der Softwareentwicklung: Klassen & Objekte!

Damit du beim Programmieren nie an kleinen Syntaxfehlern verzweifelst, starten wir mit einem kurzen Warm-up zur Fehlersuche (Kapitel 00), und steigen nach Kapitel 04 auf die Profi-Entwicklungsumgebung VS Code (Kapitel 04b) um.

🏗️ Die Grundidee von OOP in einem Satz:
Eine Klasse ist wie ein Bauplan (oder eine Plätzchen-Ausstechform). Ein Objekt ist das fertige Haus (oder das gebackene Plätzchen), das nach diesem Bauplan entstanden ist!

🗺️ Dein Lernpfad (Kapitel 00 bis 06)

🚀 Wie du vorgehst (Schritt-für-Schritt)

  1. Wähle das nächste offene Kapitel aus der Liste oben (starte mit Kapitel 00 zum Warm-up).
  2. Lies die Erklärungen und schau dir die vollständigen Codebeispiele an.
  3. Öffne die aufgabe.py im entsprechenden Kapitelordner und löse die Aufgaben.
  4. Führe im Terminal den automatischen Test aus:
    Terminal
    python3 test_aufgabe.py
  5. Wenn alle Tests mit OK durchlaufen, hast du das Kapitel erfolgreich gemeistert! 🎉
💡 Gesamten Fortschritt auf einen Blick prüfen:
Du kannst jederzeit im Hauptordner folgenden Befehl ausführen, um zu sehen, wie viele Kapitel du schon gelöst hast:
python3 test_all.py

🩺 Erste Hilfe & Häufige Fragen

❌ Fehlermeldung: TypeError: ... takes 0 positional arguments but 1 was given

Ursache: Du hast bei einer Methode in deiner Klasse das self im Methodenkopf vergessen!

Lösung: Schreibe def meine_methode(self): statt def meine_methode():. Python übergibt bei Methodenaufrufen immer automatisch das Objekt selbst als erstes Argument.

❌ Fehlermeldung: AttributeError: 'NoneType' object has no attribute '...'

Ursache: Eine Funktion oder Methode hat nichts zurückgegeben (also None), und du versuchst, auf ein Attribut davon zuzugreifen.

Lösung: Prüfe, ob du am Ende der Funktion das return objekt vergessen hast!

❌ Der Test schlägt fehl, obwohl ich die richtige Ausgabe in der Konsole sehe?

Ursache: Du hast vermutlich print(...) verwendet, anstatt den Wert mit return ... zurückzugeben.

Lösung: Die automatischen Tests prüfen den Rückgabewert (return) deiner Funktionen/Methoden, nicht das, was auf dem Bildschirm ausgegeben wird.