Skip to content

Instantly share code, notes, and snippets.

@Tarequzzaman
Last active May 23, 2022 12:46
Show Gist options
  • Save Tarequzzaman/ea751fbb39898e63ffc2792bd8585b1f to your computer and use it in GitHub Desktop.
Save Tarequzzaman/ea751fbb39898e63ffc2792bd8585b1f to your computer and use it in GitHub Desktop.
How to use decorator as Cache
import functools
def memoize(obj):
cache = {}
@functools.wraps(obj)
def memoizer(*args, **kwargs):
if args not in cache:
cache[args] = obj(*args, **kwargs)
return cache[args]
return memoizer
@memoize
def fib(n):
if n < 2:
return n
else:
return fib(n - 1) + fib(n - 2)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment