40 lines
1.8 KiB
Python
40 lines
1.8 KiB
Python
# 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}")
|