НачатьНачать бесплатно

Определение декоратора

Ваш коллега работает над декоратором, который выводит сообщение «before» перед вызовом декорируемой функции и сообщение «after» — после. Он никак не может вспомнить, как правильно организовать обёртку декорируемой функции. Помогите ему: завершите реализацию декоратора print_before_and_after().

Это упражнение является частью курса

Написание функций на Python

Посмотреть курс

Инструкции к упражнению

  • Вызовите декорируемую функцию и передайте ей позиционные аргументы *args.
  • Верните новую декорированную функцию.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

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)
Редактировать и запускать код