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
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 decoratorcounter().
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))