# 1. Decorator: Loggt die Ausführung der Fusion def log_merger(func): # TODO # Implementieren Sie den Decorator, der die Ausführung der Fusion loggt #TODO # Implementieren Sie die Klasse Abteilung. # Konstruktor (__init__): Nimmt den Namen, das Budget und ein Dictionary der Mitarbeiter entgegen # 2. Magic Method __add__: Definiert das Verhalten beim '+' Operator #TODO # Implementieren Sie die __add__ Methode, um zwei Abteilungen zu fusionieren # Dabei sollen die Namen kombiniert, die Budgets addiert und die Mitarbeiter zusammengeführt werden # Mitarbeiter mit der Rolle "Intern" sollen dabei ausgeschlossen werden # Verwenden Sie die Decorator-Funktion log_merger, um die Ausführung der Fusion zu loggen # 3. Magic Method __str__: Definiert die Textausgabe bei print(objekt) #TODO # Implementieren Sie die __str__ Methode, um eine lesbare Darstellung der Abteilung zu ermöglichen # Die Ausgabe sollte den Namen, das Budget und die Anzahl der Mitarbeiter enthalten # Beispiel: "Abteilung: Marketing & HR | Budget: 100000€ | Mitarbeiter: 7" if __name__ == "__main__": # Zwei Abteilungen mit Dictionaries erstellen it_abteilung = Abteilung( "IT", 50000, {"Anton": "Developer", "Barbara": "Projektmanagerin", "Carl": "Praktikant"}) design_abteilung = Abteilung( "Design", 30000, {"David": "Designer", "Eva": "Praktikant", "Felix": "Abteilungsleiter"}) # Fusion durchführen (Ruft log_merger und __add__ auf) merged_abteilung = it_abteilung + design_abteilung # Ergebnisse ausgeben print("------------------") print(merged_abteilung) # Ruft __str__ auf print("Final mitarbeiter List:") for name, role in merged_abteilung.mitarbeiter.items(): print(f"- {name}: {role}")