Definieren eines Dekorators
Dein Freund hat an einem Dekorator gearbeitet, der eine "Vorher"-Meldung ausgibt, bevor die dekorierte Funktion aufgerufen wird, und eine "Nachher"-Meldung ausgibt, nachdem die dekorierte Funktion aufgerufen wurde. Sie haben Schwierigkeiten, sich daran zu erinnern, wie das Einpacken der dekorierten Funktion funktionieren soll. Hilf ihnen dabei, indem du ihren print_before_and_after()
Dekorateur fertigstellst.
Diese Übung ist Teil des Kurses
Funktionen in Python schreiben
Anleitung zur Übung
- Rufe die zu dekorierende Funktion auf und übergebe ihr die Positionsargumente
*args
. - Gib die neue dekorierte Funktion zurück.
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
def print_before_and_after(func):
def wrapper(*args):
print('Before {}'.format(func.__name__))
# Call the function being decorated with *args
____(*args)
print('After {}'.format(func.__name__))
# Return the nested function
return ____
@print_before_and_after
def multiply(a, b):
print(a * b)
multiply(5, 10)