Implementation
Python decorators are generic and very powerful. You can find many examples of how they can be used in the decorator library of python.org
(j.mp/pydeclib). In this section, we will see how we can implement a memoization decorator (j.mp/memoi). All recursive functions can benefit from memoization, so let's try a function, number_sum()
, that returns the sum of the first n
numbers. Note that this function is already available in the math
module as fsum()
, but let's pretend it is not.
First, let's look at the naive implementation (the number_sum_naive.py
file):
def number_sum(n): '''Returns the sum of the first n numbers''' assert(n >= 0), 'n must be >= 0' if n == 0: return 0 else: return...