Bắt đầu ngayBắt đầu miễn phí

Bộ đếm

Bạn đang xây dựng một ứng dụng web mới và muốn biết mỗi hàm trong đó được gọi bao nhiêu lần. Vì vậy, bạn quyết định viết một decorator để thêm bộ đếm vào mỗi hàm mà bạn trang trí. Thông tin này có thể được dùng sau này để xác định liệu có phần mã nào có thể loại bỏ vì ứng dụng không còn sử dụng nữa.

Bài tập này là một phần của khóa học

Viết hàm trong Python

Xem khóa học

Hướng dẫn bài tập

  • Gọi hàm đang được trang trí và trả về kết quả.
  • Trả về hàm mới đã được trang trí.
  • Trang trí foo() bằng decorator counter().

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.

def counter(func):
  def wrapper(*args, **kwargs):
    wrapper.count += 1
    # Call the function being decorated and return the result
    return ____
  # Set count to 0 to initialize call count for each new decorated function
  wrapper.count = 0
  # Return the new decorated function
  ____

# Decorate foo() with the counter() decorator
____
def foo():
  print('calling foo()')
  
foo()
foo()

print('foo() was called {} times.'.format(foo.count))
Chỉnh sửa và Chạy Mã