LRU cache

Thomas Passin list1 at tompassin.net
Sat Feb 18 10:29:32 EST 2023


On 2/18/2023 5:38 AM, Albert-Jan Roskam wrote:
>     I sometimes use this trick, which I learnt from a book by Martelli.
>     Instead of try/except, membership testing with "in" (__contains__) might
>     be faster. Probably "depends". Matter of measuring.
>     def somefunc(arg, _cache={}):
>         if len(_cache) > 10 ** 5:
>             _cache.pop()
>         try:
>             return _cache[arg]
>         except KeyError:
>             result = expensivefunc(arg)
>             _cache[arg] = result
>             return result
>     Albert-Jan

_cache.get(arg) should be a little faster and use slightly fewer 
resources than the try/except.



More information about the Python-list mailing list