1. सीखें
  2. /
  3. पाठ्यक्रम
  4. /
  5. Python으로 함수 작성하기

Connected

अभ्यास

데코레이터 오버헤드 측정하기

상사분이 check_everything()이라는 데코레이터를 만들었고, 이게 아주 훌륭하다고 하시며 꼭 사용하라고 합니다. 그런데 이 데코레이터를 쓰면 함수 실행이 훨씬 느려진다는 걸 발견했어요. 데코레이터가 함수에 과도한 처리 시간을 추가한다는 점을 설득력 있게 보여줘야 합니다. 이를 위해 데코레이팅된 함수의 실행 시간을 측정하고, 데코레이터가 없었을 때의 실행 시간과 비교하려고 합니다. 문제가 된 데코레이터는 아래와 같습니다:

def check_everything(func):
  @wraps(func)
  def wrapper(*args, **kwargs):
    check_inputs(*args, **kwargs)
    result = func(*args, **kwargs)
    check_outputs(result)
    return result
  return wrapper

निर्देश

100 XP
  • 상사의 데코레이터에 있는 wraps() 문이 데코레이팅된 함수에 추가한 속성을 사용해, 데코레이팅된 버전이 아니라 원래 함수를 호출하세요.