LU04.A03 - Rechteck

Erstellen Sie die Klassen Rechteck und RechteckDC

Lernziele

Auftrag

Teil 1 – Normale Klasse Rechteck

Erstellen Sie die Klasse Rectangle mit den Attributen width und height.

  1. Implementieren Sie den Konstruktor init, der beide Werte als Parameter entgegennimmt.
  2. Vergeben Sie sinnvolle Default-Werte (z. B. je 1.0), sodass ein Rechteck auch ohne Argumente erzeugt werden kann.
  3. Prüfen Sie im Konstruktor, dass width und height grösser als 0 sind. Lösen Sie andernfalls eine ValueError mit aussagekräftiger Meldung aus.
  4. Implementieren Sie die Methode eq, sodass zwei Rechteck-Objekte genau dann als gleich gelten, wenn ihre Breite und Höhe übereinstimmen. Objekte eines anderen Typs sollen korrekt behandelt werden (Rückgabe von NotImplemented, nicht False).

Teil 2 – Dataclass RechteckDC

Erstellen Sie mit dem Decorator @dataclass die Klasse RectangleDC mit denselben Attributen width und height, inklusive Typ-Annotationen und identischen Default-Werten wie in Teil 1. Ergänzen Sie eine post_init-Methode, welche dieselbe Validierung wie in Teil 1 vornimmt.

Verzichten Sie bewusst auf eine eigene eq-Methode. Halten Sie in einem Kommentar fest, weshalb dies bei einer Dataclass nicht nötig ist.

⇒ GitHub Repo für externe Besucher

GitHub Repository https://github.com/templates-python/m320-lu04-a03-rectangle

Lernende am BZZ müssen den Link zum GitHub Classroom Assignment verwenden

Marcel Suter