diff options
| -rw-r--r-- | templates/memoize.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/templates/memoize.py b/templates/memoize.py new file mode 100644 index 0000000..95057ad --- /dev/null +++ b/templates/memoize.py @@ -0,0 +1,13 @@ +class memoized(object): + def __init__(self, func): + self.func = func + self.cache = {} + def __call__(self, *args): + try: + return self.cache[args] + except KeyError: + value = self.func(*args) + self.cache[args] = value + return value + except TypeError: + return self.func(*args) |
