Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
de:modul:m320_2024:learningunits:lu04:rechteck [2026/09/03 08:08] – angelegt msuterde: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 
-</WRAP> 
  
-===== Lernziele ===== 
- 
-  * Sie können in einer «normalen» Klasse einen Konstruktor mit Default-Werten und Parametervalidierung implementieren. 
-  * Sie können die Methode __eq__ korrekt implementieren, um den Inhalt zweier Objekte zu vergleichen (inklusive Typprüfung mit isinstance und Rückgabe von NotImplemented). 
-  * 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 ''width'' und ''height''. 
-Implementieren Sie den Konstruktor ''__init__'', der beide Werte als Parameter entgegennimmt.  
-Vergeben Sie sinnvolle Default-Werte (z. B. je 1.0), sodass ein Rechteck auch ohne Argumente erzeugt werden kann. 
-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. 
-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 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, 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. 
- 
-<details> 
-<summary>//=> GitHub Repo für externe Besucher//</summary> 
-GitHub Repository https://github.com/templates-python/m320-lu04-a03-rectangle 
- 
-//Lernende am BZZ müssen den Link zum GitHub Classroom Assignment verwenden// 
- 
-</details> 
-{{tag>M320-LU04}} 
-[[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] Marcel Suter 
  • de/modul/m320_2024/learningunits/lu04/rechteck.1788415713.txt.gz
  • Zuletzt geändert: 2026/09/03 08:08
  • von msuter