it-praxisportal/08_operator_overloading_dunder/README.md

1.6 KiB
Raw Blame History

Kapitel 08: Operator Overloading & Dunder-Methoden ➕

In diesem Kapitel lernst du, wie du deine eigenen Klassen mit Pythons eingebauten Operatoren (+, -, *, ==, <, len(), abs()) ausstattest.


🎯 Was du lernst

  1. Was sind Dunder-Methoden? Methoden mit führenden und nachgestellten doppelten Unterstrichen (Double Underscore, z.B. __add__).
  2. Magische Übersetzung: Wenn du a + b schreibst, ruft Python im Hintergrund a.__add__(b) auf.
  3. Mathematische Operatoren überladen:
    • __add__(self, other) für +
    • __sub__(self, other) für -
    • __mul__(self, other) für * (z.B. Skalarmultiplikation mit Zahlen oder Skalarprodukt)
    • __rmul__(self, other) für * von links (z.B. 3 * v)
  4. Vergleiche überladen:
    • __eq__(self, other) für ==
    • __lt__(self, other) für <
    • __le__(self, other) für <=
  5. Objekt- und Container-Dunder:
    • __str__ (für Menschen) vs. __repr__ (für Entwickler / Debugger)
    • __abs__ für abs(objekt) (z.B. Vektorlänge)
    • __len__ für len(objekt) (z.B. Anzahl von Wegpunkten)
    • __getitem__ für Indexzugriff objekt[i]

📁 Die Dateien in diesem Ordner

  • index.html: Interaktive Lernseite mit visuellen Tabellen, Code-Beispielen & Ausklapp-Hilfen.
  • aufgabe.py: Dein Arbeitsblatt zum Implementieren von Vektor2D und Wegstrecke.
  • test_aufgabe.py: Automatische Tests (python3 test_aufgabe.py).
  • musterloesung.py: Vollständig ausprogrammierte Beispiellösung.

🚀 Schnellstart

# 1. Bearbeite aufgabe.py
# 2. Teste deine Lösung:
python3 test_aufgabe.py