"""2) When testing software, it can be useful to count the number of times that

a function is called. Without using any lists or dictionaries, define a

higher-order function count_calls that returns two functions:

- a counted version of the original function that counts the number of times

it has been called

- a function of zero arguments that returns the number of times that the

counted function is called

"""

```
def count_calls(f):
"""A decorator that returns a version of f that counts calls to f and can
report that count to how_many_calls.
>>> from operator import add
>>> counted_add, add_count = count_calls(add)
>>> add_count()
0
>>> counted_add(1, 2)
3
>>> add_count()
1
>>> add(3, 4) # Doesn't count
7
>>> add_count()
1
>>> counted_add(5, 6)
11
>>> add_count()
2
"""
"*** My CODE HERE ***"
total = 0
def counted_function():
f1 = f
nonlocal total
total = total + 1
return f1
def function_count():
nonlocal total
return total
return counted_function,function_count
```

so the problem i am facing is that i can basically do what i am required to do but my function calls need to be as counted_add()(1,2) instead of counted_add(1,2) how do i go about solving that ? i mean i tried changing the return to counted_function(),function_count but than i call the function only once and total never increments. help appreciated