Guest User

Untitled

a guest
Oct 18th, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.55 KB | None | 0 0
  1. class Memoize:
  2. """
  3. Example usage:
  4. >>> @Memoize
  5. ... def fib(n):
  6. ... if n <= 1:
  7. ... return n
  8. ... else:
  9. ... return fib(n - 1) + fib(n - 2)
  10. >>> fib(300)
  11. 222232244629420445529739893461909967206666939096499764990979600L
  12. """
  13. def __init__(self, f):
  14. self.f = f
  15. self.memo = {}
  16.  
  17. def __call__(self, *args):
  18. if args in self.memo:
  19. return self.memo[args]
  20. else:
  21. result = self.f(*args)
  22. self.memo[args] = result
  23. return result
Add Comment
Please, Sign In to add comment