🐍 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!

Mit Klassen kannst du zusammengehörige Daten und Aktionen an einem Ort bündeln. Fast jede moderne App (ob Instagram, Spotify oder Computerspiele) basiert auf objektorientierter Programmierung.

🏗️ Die Grundidee 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 01 bis 06)

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

  1. Wähle das nächste offene Kapitel aus der Liste oben.
  2. Lies die Erklärungen und schau dir die Codebeispiele und „Stolperfallen“ an.
  3. Öffne die aufgabe.py im entsprechenden Kapitelordner und löse die TODOs.
  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.