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:// |