Лічильник
Ви працюєте над новим вебзастосунком і хочете з'ясувати, скільки разів викликається кожна з його функцій. Тож ви вирішуєте написати декоратор, який додасть лічильник до кожної функції, яку ви декоруєте. У майбутньому ці дані допоможуть визначити, чи є частини коду, які можна прибрати, бо застосунок їх більше не використовує.
Ця вправа є частиною курсу
Написання функцій у Python
Інструкції до вправи
- Викличте функцію, яку декорують, і поверніть результат.
- Поверніть нову декоровану функцію.
- Задекоруйте
foo()декораторомcounter().
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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))