Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Schreiben von Parametrisierten Dekoratoren | Mastering Python Iterators and Decorators
Funktionale Programmierkonzepte in Python

bookSchreiben von Parametrisierten Dekoratoren

Swipe um das Menü anzuzeigen

Wenn ein Decorator sich abhängig von bestimmten Eingaben unterschiedlich verhalten soll, wird ein parametrisierter Decorator benötigt. Im Gegensatz zu regulären Decorators, die nur die Funktion als Argument erhalten, akzeptieren parametrisierte Decorators eigene Argumente und ermöglichen so eine dynamische Steuerung ihres Verhaltens. Dies ist besonders nützlich, wenn ein Decorator in verschiedenen Situationen mit unterschiedlichen Konfigurationen wiederverwendet werden soll.

Aufbau eines parametrisierten Decorators:

  1. Die äußere Funktion nimmt die Argumente des Decorators entgegen;
  2. Die mittlere Funktion ist der eigentliche Decorator, der die zu dekorierende Funktion übernimmt;
  3. Die innere Funktion kapselt und steuert die Ausführung der Originalfunktion.

Dieser mehrschichtige Ansatz ermöglicht es, Argumente an den Decorator zu übergeben, die dann beim Aufruf der dekorierten Funktion zur Verfügung stehen.

12345678910111213141516171819202122
# Outer function: accepts the decorator argument 'times' def repeat(times): # The actual decorator that takes the function to be decorated def decorator(func): # Inner function: wraps and controls the execution of 'func' def wrapper(*args, **kwargs): result = None # Call the original function 'times' times for _ in range(times): result = func(*args, **kwargs) return result # Return the wrapper to replace the original function return wrapper # Return the decorator function return decorator # Apply the repeat decorator @repeat(3) def say_hello(): print("Hello!") say_hello()
copy

1. Worin unterscheidet sich ein parametrisierter Decorator von einem regulären Decorator?

2. Warum könnte man Argumente an einen Decorator übergeben wollen?

question mark

Worin unterscheidet sich ein parametrisierter Decorator von einem regulären Decorator?

Wählen Sie die richtige Antwort aus

question mark

Warum könnte man Argumente an einen Decorator übergeben wollen?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 3

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Abschnitt 4. Kapitel 3
some-alt