1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Viết hàm trong Python

Connected

Bài tập

Đo chi phí phụ trội của decorator

Sếp của bạn đã viết một decorator tên là check_everything() mà họ nghĩ là tuyệt vời và yêu cầu bạn dùng nó cho hàm của mình. Tuy nhiên, bạn nhận thấy khi dùng decorator này, các hàm chạy chậm đi rất nhiều. Bạn cần thuyết phục sếp rằng decorator đang thêm quá nhiều thời gian xử lý vào hàm. Để làm điều đó, bạn sẽ đo thời gian chạy của hàm đã được trang trí và so sánh với thời gian mà hàm chưa trang trí sẽ mất. Đây là decorator đang được nói đến:

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

Hướng dẫn

100 XP
  • Gọi hàm gốc thay vì phiên bản đã được trang trí bằng cách sử dụng một thuộc tính của hàm mà câu lệnh wraps() trong decorator của sếp bạn đã thêm vào hàm đã được trang trí.