시작하기무료로 시작하기

데코레이터 정의하기

동료가 데코레이트된 함수가 호출되기 전에 "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)
코드 편집 및 실행