On Feb 18, 2023 17:28, Rob Cliffe via Python-list <python-list@python.org> wrote:
On 18/02/2023 15:29, Thomas Passin wrote: > 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. > Provided that you can provide a default value to get() which will never be a genuine "result". ===== This might be better than None: _cache.get(arg, Ellipsis) -- https://mail.python.org/mailman/listinfo/python-list