Context manager timer()
Một đồng nghiệp của bạn đang phát triển dịch vụ web xử lý ảnh Instagram. Khách hàng phàn nàn rằng dịch vụ mất quá nhiều thời gian để xác định một ảnh có mèo hay không, nên đồng nghiệp đã nhờ bạn hỗ trợ. Bạn quyết định viết một context manager để họ có thể đo thời gian chạy của các hàm của mình.
Bài tập này là một phần của khóa học
Viết hàm trong Python
Hướng dẫn bài tập
- Thêm một decorator từ module
contextlibvào hàmtimer()để nó hoạt động như một context manager. - Chuyển quyền điều khiển từ hàm
timer()sang khối ngữ cảnh.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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)