시작하기무료로 시작하기

timer() 컨텍스트 매니저

당신의 동료가 Instagram 사진을 처리하는 웹 서비스를 개발하고 있어요. 이미지에 고양이가 있는지 판별하는 데 시간이 너무 오래 걸린다는 고객의 불만이 있어, 동료가 도움을 요청했습니다. 동료가 함수 실행 시간을 측정할 수 있도록, 컨텍스트 매니저를 하나 작성하기로 했어요.

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

Python으로 함수 작성하기

강의 보기

연습 안내

  • contextlib 모듈의 데코레이터를 timer() 함수에 추가해 이 함수가 컨텍스트 매니저처럼 동작하도록 하세요.
  • timer() 함수에서 컨텍스트 블록으로 제어를 넘기세요.

실습형 인터랙티브 연습

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

# Add a decorator that will make timer() a context manager
@contextlib.____
def timer():
  """Time the execution of a context block.

  Yields:
    None
  """
  start = time.time()
  # Send control back to the context block
  ____
  end = time.time()
  print('Elapsed: {:.2f}s'.format(end - start))

with timer():
  print('This should take approximately 0.25 seconds')
  time.sleep(0.25)
코드 편집 및 실행