Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
modul:m323:learningunits:lu02:aufgaben:dataclass1 [2024/08/28 11:30] kmaurizimodul:m323:learningunits:lu02:aufgaben:dataclass1 [2024/08/28 11:39] (aktuell) kmaurizi
Zeile 15: Zeile 15:
   - Nutzen Sie die Funktionen, um mehrere Änderungen an einer Instanz von ''Car'' durchzuführen, und drucken Sie die Liste der Service-Daten am Ende aus.   - Nutzen Sie die Funktionen, um mehrere Änderungen an einer Instanz von ''Car'' durchzuführen, und drucken Sie die Liste der Service-Daten am Ende aus.
  
-==== Code Vorlage ==== 
- 
-<code python> 
-from car import Car 
- 
-def add_mileage(car, distance): 
-    """ 
-    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, service_dates=new_service_dates) 
- 
-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='Toyota', mileage=9500) 
-    print(f'Vor der Fahrt: {my_car}') 
-     
-    my_car = add_mileage(my_car, 600)  # Sollte den Service hinzufügen 
-    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'Nach der zweiten Fahrt: {my_car}') 
-    print(f'Service-Daten: {my_car.service_dates}') 
-</code> 
  
 ==== Schritt für Schritt ==== ==== Schritt für Schritt ====
Zeile 59: Zeile 22:
   - Implementieren Sie die Funktion ''check_service'', die die Laufleistung überprüft.   - Implementieren Sie die Funktion ''check_service'', die die Laufleistung überprüft.
   - Führen Sie mehrere Funktionsaufrufe durch, um die Änderungen zu testen und die Liste der Service-Daten zu überprüfen.   - Führen Sie mehrere Funktionsaufrufe durch, um die Änderungen zu testen und die Liste der Service-Daten zu überprüfen.
- 
-==== Lösung ==== 
- 
-<code python> 
-# car.py 
-from dataclasses import dataclass, field 
-from typing import List 
- 
-@dataclass(frozen=True) 
-class Car: 
-    brand: str 
-    mileage: int 
-    service_dates: List[str] = field(default_factory=list) 
-</code> 
- 
-<code python> 
-# main.py 
-from car import Car 
- 
-def add_mileage(car, distance): 
-    """ 
-    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, service_dates=new_service_dates) 
- 
-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='Toyota', mileage=9500) 
-    print(f'Vor der Fahrt: {my_car}') 
-     
-    my_car = add_mileage(my_car, 600)  # Sollte den Service hinzufügen 
-    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'Nach der zweiten Fahrt: {my_car}') 
-    print(f'Service-Daten: {my_car.service_dates}') 
-</code> 
  
 ---- ----
 <nodisp>https://github.com/templates-python/m323-lu02-a10-dataclass1</nodisp> <nodisp>https://github.com/templates-python/m323-lu02-a10-dataclass1</nodisp>
 [[https://creativecommons.org/licenses/by-nc-sa/4.0/ch/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] (c) Kevin Maurizi  [[https://creativecommons.org/licenses/by-nc-sa/4.0/ch/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] (c) Kevin Maurizi 
  • modul/m323/learningunits/lu02/aufgaben/dataclass1.1724837420.txt.gz
  • Zuletzt geändert: 2024/08/28 11:30
  • von kmaurizi