First page Back Continue Last page Overview Graphics

Exercise

Write a decorator, which counts how often a function has been called.

The decorator:

def call_counter(func):

def helper(*args, **kwargs):

helper.calls += 1

return func(*args, **kwargs)

helper.calls = 0

helper.__name__= func.__name__

return helper

Using the decorator:

@call_counter

def succ(x):

return x + 1

print(succ.calls)

s = 0

for i in range(10):

s += succ(i)

print(succ.calls)