Zacznij terazZacznij za darmo

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

Zobacz kurs

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)
Edytuj i uruchom kod