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 @lru_cache
function as a way to boost certain types of applications with frequent re-calculations of the same values. This decorator is of tremendous value for certain kinds of functions that take the integer
or the string
argument values. It can reduce processing by simply implementing memoization.
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, we can build a lambda
with similar features. The use case for this is ambiguous.
We also looked at the reduce()
function as a higher-order function...