Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| de:modul:m320_2024:learningunits:lu04:rechteck [2026/09/03 08:08] – angelegt msuter | de:modul:m320_2024:learningunits:lu04:rechteck [2026/09/03 13:10] (aktuell) – gelöscht msuter | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== LU04.A03 - Rechteck ====== | ||
| - | <WRAP center round todo 60%> | ||
| - | Erstellen Sie die Klassen Rechteck und RechteckDC | ||
| - | </ | ||
| - | ===== Lernziele ===== | ||
| - | |||
| - | * Sie können in einer «normalen» Klasse einen Konstruktor mit Default-Werten und Parametervalidierung implementieren. | ||
| - | * Sie können die Methode __eq__ korrekt implementieren, | ||
| - | * Sie kennen den Unterschied zwischen Objektidentität (is) und Inhaltsgleichheit (==). | ||
| - | * Sie können eine Dataclass mit typisierten Attributen, Default-Werten und __post_init__ zur Validierung definieren. | ||
| - | * Sie erkennen, dass eine Dataclass Konstruktor und __eq__ automatisch generiert, und können den Unterschied zur manuellen Implementation in einer normalen Klasse erklären. | ||
| - | |||
| - | ===== Auftrag ===== | ||
| - | |||
| - | ==== Teil 1 – Normale Klasse Rechteck ==== | ||
| - | |||
| - | Erstellen Sie die Klasse Rechteck mit den Attributen '' | ||
| - | Implementieren Sie den Konstruktor '' | ||
| - | Vergeben Sie sinnvolle Default-Werte (z. B. je 1.0), sodass ein Rechteck auch ohne Argumente erzeugt werden kann. | ||
| - | Prüfen Sie im Konstruktor, | ||
| - | 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, | ||
| - | |||
| - | ==== Teil 2 – Dataclass RechteckDC ==== | ||
| - | |||
| - | Erstellen Sie mit dem Decorator @dataclass die Klasse RechteckDC mit denselben Attributen breite und hoehe, inklusive Typ-Annotationen und identischen Default-Werten wie in Teil 1. | ||
| - | Ergänzen Sie eine __post_init__-Methode, | ||
| - | Verzichten Sie bewusst auf eine eigene __eq__-Methode. Halten Sie in einem Kommentar fest, weshalb dies bei einer Dataclass nicht nötig ist. | ||
| - | |||
| - | < | ||
| - | < | ||
| - | GitHub Repository https:// | ||
| - | |||
| - | //Lernende am BZZ müssen den Link zum GitHub Classroom Assignment verwenden// | ||
| - | |||
| - | </ | ||
| - | {{tag> | ||
| - | [[https:// | ||