Menu
Coddy logo textTech

Decorators Usage

Lektion 5 von 12 im Kurs Python-Dekoratoren von Coddy.

In Python ist ein Decorator eine Funktion, die eine andere Funktion als Eingabe entgegennimmt und das Verhalten der Eingabefunktion erweitert, ohne deren Code explizit zu ändern. Decorators sind eine leistungsstarke Methode, um das Verhalten von Funktionen auf flexible und wiederverwendbare Weise zu modifizieren oder zu verbessern.

Hier ist ein Beispiel für eine einfache Decorator-Funktion:

def my_decorator(func):
    def wrapper():
        print("Before the function is called.")
        func()
        print("After the function is called.")
    return wrapper

In diesem Beispiel nimmt die Funktion my_decorator eine andere Funktion func als Eingabe entgegen und gibt eine neue Funktion namens wrapper zurück.

Die wrapper-Funktion fügt ein gewisses Verhalten hinzu, bevor und nachdem die Funktion func aufgerufen wird.

challenge icon

Aufgabe

Einfach

Schreiben Sie eine Decorator-Funktion namens debug, die eine Funktion func als Eingabe erhält und eine neue Funktion zurückgibt, die bei jedem Aufruf den Namen von func und den Rückgabewert von func ausgibt.

Um den Namen von func zu erhalten, verwenden Sie func.__name__.

Hier ist ein Beispiel für die Verwendung des debug-Decorators:
 

def hello():
    return "Hello"

debug_hello = debug(hello)
debug_hello()

In diesem Beispiel verwenden wir den debug-Decorator, um die Funktion hello zu umschließen und eine neue Funktion namens debug_hello zu erstellen. Wenn wir debug_hello() aufrufen, gibt der Decorator Folgendes aus:

Calling hello
hello returned: Hello

Sie können davon ausgehen, dass alle an debug übergebenen Funktionen Funktionen ohne Argumente sind.

Probier es selbst

Alle Lektionen in Python-Dekoratoren

Übe selbstständig: Online-Python-Compiler