시작하기무료로 시작하기

데코레이터로 함수 장식 시 docstring 보존하기

친구가 고민을 들고 왔어요. 오픈 소스 라이브러리에서 멋진 데코레이터를 몇 개 만들고 여러 함수에 적용했는데, 테스트를 돌려 보니 데코레이팅된 함수들의 docstring이 sp에 사라져 버렸다고 해요. 데코레이터를 작성할 때 docstring과 다른 메타데이터를 어떻게 보존하는지 보여 주세요.

이 연습은 강의의 일부입니다

Python으로 함수 작성하기

강의 보기

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

def add_hello(func):
  def wrapper(*args, **kwargs):
    print('Hello')
    return func(*args, **kwargs)
  return wrapper

# Decorate print_sum() with the add_hello() decorator
____
def print_sum(a, b):
  """Adds two numbers and prints the sum"""
  print(a + b)
  
print_sum(10, 20)
# Define the docstring
print_sum_docstring = print_sum.____
print(print_sum_docstring)
코드 편집 및 실행