Счётчик

Что нужно сделать

Реализуйте декоратор counter, считающий и выводящий количество вызовов декорируемой функции.

Для решения задачи нельзя использовать операторы global и nonlocal (об этом мы ещё расскажем).

Что оценивается

  • Результат вычислений корректен.
  • Переменные, функции и собственные методы классов имеют значащие имена (не abcd).
  • Классы и методы/функции имеют прописанную документацию.
  • Есть аннотация типов для методов/функций и их аргументов (кроме args и kwargs). Если функция/метод ничего не возвращает, то используется None.
  • Во всех декораторах используется functools.wraps.
def counter(func):
    """Декоратор считает количество вызовов функции"""

    def inner(*args, **kwargs):
        inner.count += 1
        result = func(*args, **kwargs)
        return result

    inner.count = 0
    return inner

@counter
def test1():
    pass

@counter
def test2():
    pass


test1()
test1()
test2()
test2()
test2()

print(test1.count)
print(test2.count)