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".

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to