Functools
The final module of the standard library you are going to look at allows constructs with a minimal amount of code. In this topic, you are going to see how to use lru_cache
and partial
.
Caching with functools.lru_cache
Often, you have a function that is heavy to compute, in which you just want to cache results. Many developers will create their own caching implementation by using a dictionary, but that is error-prone and adds unnecessary code to our project. The functools
module comes with a decorator
— that is, functools.lru_cache
, which is provided exactly for these situations. It is a recently used cache, with a max_size
that is provided when the code is constructed. This means that you can specify a number of input values that you want to cache as a maximum, to limit the memory this function can take, or it can grow indefinitely. Once you reach the maximum number of different inputs that we want to cache, the input that was the least recently used will be...