🐍 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), bevor es mit den Klassen losgeht.

🏗️ 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 (am besten startest du mit Kapitel 00).
  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.