58 lines
2.5 KiB
Markdown
58 lines
2.5 KiB
Markdown
# Aufgaben
|
|
## Aufgabe 1
|
|
### List Comprehension
|
|
|
|
In der Datei _list_comprehension_ ist eine Liste _artikel_ mit Daten von Supermarktartikeln
|
|
```python
|
|
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:
|
|
```python
|
|
[("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. |