Menu
Coddy logo textTech

Python Syntax

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

In der vorherigen Lektion haben wir gesehen, wie man Funktions-Dekoratoren erstellt. Python bietet jedoch eine viel elegantere Möglichkeit, diese Funktionalität mit dem @-Symbol zu erreichen.

Zum Beispiel,

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

@my_decorator
def my_function():
	print("Inside my_function.")

Wenn wir my_function() ausführen, sehen wir eine Ausgabe wie diese:

Before function is called.
Inside my_function.
After function is called.

Dies zeigt, dass die Dekorator-Funktion my_decorator in der Lage war, das Verhalten von my_function zu ändern, indem sie zusätzlichen Code vor und nach dem Aufruf hinzugefügt hat.

challenge icon

Aufgabe

Einfach

Sie erhalten den Code für eine Funktion add.

Ihre Aufgabe ist es, einen Funktions-Decorator namens debug zu schreiben, wie in der letzten Lektion, aber mit einigen Ergänzungen:

  • Fügen Sie den Funktions-Decorator debug mit dem @-Symbol zu add hinzu.
  • Die debug-Funktion sollte Funktionsargumente unterstützen.

Um eine Funktion mit Argumenten in einem Decorator zu unterstützen,

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

Beispiel:

Für einen Funktionsaufruf add(2, 3) sollte Folgendes ausgegeben werden:

Calling add with arguments (2, 3)
add returned: 5

Probier es selbst

# Hier Code schreiben


def add(a, b):
    return a + b

Alle Lektionen in Python-Dekoratoren

Übe selbstständig: Online-Python-Compiler