Как посчитать сколько раз вызвана функция с помощью декоратора
Как в декораторе можно хранить переменную, которая показывала бы сколько раз вызывали данную функцию? Первое что пришло в голову - заюзать вместе декоратор с замыканиями, но дальше идеи ничего не пришло в голову.
def decor(func):
def wrapper():
i=0
func()
i+=1
print(f'{i}')
return wrapper
@decor
def test():
pass
test()
test()
test()
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Вынести переменную-счётчик в сам декоратор:
def decor(func):
i=0
def wrapper():
nonlocal i
func()
i+=1
print(f'{i}')
return wrapper
Тогда печатает так:
1
2
3