On Tuesday, 1 August 2017 00:31:52 UTC+1, t...@tomforb.es wrote: > Am I right in thinking that using `maxsize=None` is best for functions that > accept no arguments? Should we even be using a `lru_cache` in such > situations, or write our own simple cache decorator instead?
It seems like overkill to use lru_cache for this case - it's designed to map arguments to results, so it makes little sense when there are no arguments. It's also got LRU arglist management and thread safety overheads, so there's a lot of unneeded overhead for this usage. _sentinel = object() _val = _sentinel def val(): if _val is _sentinel: # Calculate _val return _val seems entirely sufficient for this case. Write a custom decorator if you use the idiom often enough to make it worth the effort. Paul -- https://mail.python.org/mailman/listinfo/python-list