10.7 Summary
In this chapter, we’ve looked at a number of functions in the functools
module. This library module provides a number of functions that help us create sophisticated functions and classes.
We’ve looked at the @cache
and @lru_cache
decorators as ways to boost certain types of applications with frequent re-calculations of the same values. These two decorators are of tremendous value for certain kinds of functions that take integer or string argument values. They can reduce processing by simply implementing memoization. The @lru_cache
has an upper bound on the memory it will use; this is good for a domain with an unknown size.
We looked at the @total_ordering
function as a decorator to help us build objects that support rich ordering comparisons. This is at the fringe of functional programming, but is very helpful when creating new kinds of numbers.
The partial()
function creates a new function with the partial application of argument values. As an alternative...