Что нужно сделать
Реализуйте декоратор counter, считающий и выводящий количество вызовов декорируемой функции.
Для решения задачи нельзя использовать операторы global и nonlocal (об этом мы ещё расскажем).
Что оценивается
- Результат вычислений корректен.
- Переменные, функции и собственные методы классов имеют значащие имена (не
a,b,c,d). - Классы и методы/функции имеют прописанную документацию.
- Есть аннотация типов для методов/функций и их аргументов (кроме
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)