Definiowanie dekoratora
Twój kolega pracuje nad dekoratorem, który wyświetla komunikat „before" przed wywołaniem udekorowanej funkcji i komunikat „after" po jej wywołaniu. Ma problem z przypomnieniem sobie, jak poprawnie opakować dekorowaną funkcję. Pomóż mu, uzupełniając dekorator print_before_and_after().
To ćwiczenie jest częścią kursu
Pisanie funkcji w Pythonie
Instrukcje do ćwiczenia
- Wywołaj dekorowaną funkcję i przekaż jej argumenty pozycyjne
*args. - Zwróć nową, udekorowaną funkcję.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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)