Teller
Je werkt aan een nieuwe webapp en je bent benieuwd hoe vaak elke functie wordt aangeroepen. Daarom schrijf je een decorator die een teller toevoegt aan elke functie die je decoreert. Deze informatie kun je later gebruiken om te bepalen of er stukken code zijn die je kunt verwijderen omdat ze niet meer door de app worden gebruikt.
Deze oefening maakt deel uit van de cursus
Functies schrijven in Python
Oefeninstructies
- Roep de te decoreren functie aan en geef het resultaat terug.
- Geef de nieuwe gedecoreerde functie terug.
- Decoreer
foo()met decounter()-decorator.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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))