2.5 KiB
Aufgaben
Aufgabe 1
List Comprehension
In der Datei list_comprehension ist eine Liste artikel mit Daten von Supermarktartikeln
artikel = [
{"artikel": "Quark", "stueckzahl": 18, "price": 1.59, "verfallsdatum": "2026-06-25", "lieferant": "Frisch-Milch AG", "lagerplatz": "Kühlregal 1"},
{...}, ...
]
Erstellen Sie mittels List Comprehension eine Liste abgelaufene_artikel von Tupeln. Jedes Tupel soll den artikel-Namen und den entsprechenden lagerplatz enthalten. Berücksichtigen Sie dabei nur die Artikel, deren verfallsdatum vor dem aktuellen Datum liegt.
Das Zielformat der Liste sollte wie folgt aussehen:
[("Artikelname", "Lagerplatz"), ...]
Aufgabe 2
Decorator
Implementieren Sie einen Decorator, der ein Dictionary (cache_dict) nutzt, um die Ergebnisse von Funktionsaufrufen basierend auf ihren Argumenten zu speichern.
Aufgabe 3
Magic Methodes
Erstellen Sie eine Klasse Einkaufswagen mit einem Konstruktur, der Kunde und artikel entgegennimmt. Überladen Sie den Operator (*), sodass wenn ein Einkaufswagen mit einer Zahl multipliziert ist werden nur die Artikel in der Liste vervielfacht.
Hausaufgabe
Abteilungs-Fusion
-
Implementieren Sie den Decorator log_merger, der bei jedem Aufruf der Fusionsfunktion eine Log-Nachricht auf der Konsole ausgibt (z. B.: "[SYSTEM LOG]: Initiating merger..."). Achten Sie darauf, dass der Decorator den Rückgabewert der ursprünglichen Funktion korrekt weitergibt.
-
Erstellen Sie die Klasse Abteilung mit folgenden Komponenten:
Konstruktor (init): Initialisiert die Abteilung mit einem name, einem budget und einem employees-Dictionary (Format: {"Name": "Rolle"}).
Magic Method add:
Definieren Sie das Verhalten beim Addieren von zwei Abteilungen (obj1 + obj2).
Anforderungen für die Fusion:
-
Die Namen der Abteilungen sollen kombiniert werden (z. B. "IT & HR").
-
Die Budgets der beiden Abteilungen werden addiert.
-
Die Mitarbeiter-Dictionaries werden zusammengeführt.
-
Mitarbeiter mit der Rolle "Intern" sollen bei der Fusion ausgeschlossen werden.
Decorator: Dekorieren Sie diese Methode mit dem oben erstellten @log_merger, um den Fusionsvorgang zu protokollieren.
Magic Method str:
Definieren Sie die Textausgabe für die Klasse, um eine übersichtliche Darstellung bei print(objekt) zu ermöglichen.
Formatvorgabe: "Abteilung: [Name] | Budget: [Budget]€ | Employees: [Anzahl]"
-
-
Führen Sie das Programm aus, um die korrekte Fusion der Abteilungen zu überprüfen.