Licznik
Pracujesz nad nową aplikacją internetową i zastanawiasz się, ile razy każda z funkcji jest w niej wywoływana. Postanawiasz więc napisać dekorator, który doda licznik do każdej dekorowanej funkcji. Dzięki temu będziesz w stanie sprawdzić, czy są fragmenty kodu, które można usunąć, bo aplikacja już ich nie używa.
To ćwiczenie jest częścią kursu
Pisanie funkcji w Pythonie
Instrukcje do ćwiczenia
- Wywołaj dekorowaną funkcję i zwróć jej wynik.
- Zwróć nową udekorowaną funkcję.
- Udekoruj
foo()dekoratoremcounter().
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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))