Middle+
Was ist eine Dekoratorfabrik?
sobes.tech KI
Antwort von AI
Ein Decorator-Fabrik ist eine Funktion, die einen Decorator zurückgibt. Sie nimmt Argumente zur Konfiguration des Verhaltens des zurückgegebenen Decorators. Dies ermöglicht die Erstellung wiederverwendbarer Decorators mit unterschiedlichem Verhalten, abhängig von den übergebenen Parametern.
# Decorator-Fabrikfunktion
def my_decorator_factory(prefix):
# Innere Funktion (Decorator), die die zu dekorierende Funktion akzeptiert
def my_decorator(func):
# Eine weitere innere Funktion (Wrapper), die die Logik des Decorators enthält
def wrapper(*args, **kwargs):
print(f"{prefix}: Vor dem Aufruf der Funktion {func.__name__}")
result = func(*args, **kwargs)
print(f"{prefix}: Nach dem Aufruf der Funktion {func.__name__}")
return result
return wrapper
return my_decorator
# Verwendung der Fabrik zur Erstellung von Decorators mit unterschiedlichem Präfix
@my_decorator_factory("DEBUG")
def some_function():
print("Ausführung von some_function")
@my_decorator_factory("INFO")
def another_function(x, y):
print(f"Ausführung von another_function mit Argumenten {x}, {y}")
return x + y
some_function()
result = another_function(5, 10)
print(f"Ergebnis: {result}")
Hauptschritte:
- Es wird eine äußere Funktion (Fabrik) mit Parametern definiert.
- Innerhalb der Fabrik wird eine Decorator-Funktion definiert, die die zu dekorierende Funktion akzeptiert.
- Innerhalb der Decorator-Funktion wird eine Wrapper-Funktion definiert, die die Decorator-Logik enthält und Parameter aus der Fabrik sowie Argumente der dekorierten Funktion verwenden kann.
- Die Decorator-Funktion gibt die Wrapper-Funktion zurück.
- Die Fabrik gibt die Decorator-Funktion zurück.
Dies ist nützlich, um flexible und konfigurierbare Decorators zu erstellen.