Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| modul:m323:learningunits:lu02:aufgaben:dataclass [2024/08/28 09:22] – [Aufgabenstellung] kmaurizi | modul:m323:learningunits:lu02:aufgaben:dataclass [2024/08/28 10:36] (aktuell) – kmaurizi | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== LU02.A09 - Immutable | + | ====== LU02.A09 - Dataclass |
| <WRAP center round todo 60%> | <WRAP center round todo 60%> | ||
| - | Implementieren Sie eine Funktion, die eine neue Instanz | + | Implementieren Sie eine Dataclass mit einem mutable Attribut und stellen Sie sicher, dass jede Instanz |
| </ | </ | ||
| ==== Aufgabenstellung ==== | ==== Aufgabenstellung ==== | ||
| - | - Definieren Sie eine '' | + | - Definieren Sie eine Dataclass |
| - | - Implementieren | + | - Verwenden |
| - | - Die neue Instanz | + | - Implementieren Sie eine Funktion '' |
| - | - Implementieren Sie eine zweite | + | - Erstellen |
| - | - Nutzen | + | |
| - | ==== Code Vorlage ==== | ||
| - | <code python> | + | ==== Schritt für Schritt ==== |
| - | from dataclasses import dataclass, field | + | |
| - | from typing import List | + | |
| - | @dataclass(frozen=True) | + | |
| - | class Car: | + | - Implementieren Sie das Attribut |
| - | brand: str | + | |
| - | mileage: int | + | |
| - | service_dates: | + | - Überprüfen Sie die Unabhängigkeit der Mitgliederlisten, |
| - | + | ||
| - | def add_mileage(car: | + | |
| - | """ | + | |
| - | Returns a new Car instance with updated mileage and possibly an updated service date. | + | |
| - | """ | + | |
| - | new_mileage = car.mileage + distance | + | |
| - | new_service_dates = car.service_dates[: | + | |
| - | + | ||
| - | if new_mileage > 10000 and (car.mileage <= 10000): | + | |
| - | new_service_dates.append('2024-08-28') | + | |
| - | + | ||
| - | return Car(brand=car.brand, mileage=new_mileage, | + | |
| - | + | ||
| - | def check_service(car: | + | |
| - | """ | + | |
| - | Checks if the car's mileage exceeds 10,000 km. | + | |
| - | """ | + | |
| - | return car.mileage > 10000 | + | |
| - | + | ||
| - | if __name__ == '__main__': | + | |
| - | my_car = Car(brand=' | + | |
| - | | + | |
| - | + | ||
| - | my_car = add_mileage(my_car, | + | |
| - | print(f'Nach der ersten Fahrt: {my_car}') | + | |
| - | + | ||
| - | if check_service(my_car): | + | |
| - | print('Service benötigt!') | + | |
| - | + | ||
| - | my_car = add_mileage(my_car, 100) # Keine Änderung bei Service-Daten | + | |
| - | print(f' | + | |
| - | | + | |
| - | </ | + | |
| - | + | ||
| - | ==== Schritt für Schritt ==== | + | |
| - | - Definieren Sie die immutable Dataclass '' | ||
| - | - Implementieren Sie die Funktion '' | ||
| - | - Implementieren Sie die Funktion '' | ||
| - | - Führen Sie mehrere Funktionsaufrufe durch, um die Änderungen zu testen und die Liste der Service-Daten zu überprüfen. | ||
| + | ---- | ||
| + | < | ||
| + | [[https:// | ||