summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuval Adam <yuv.adm@gmail.com>2011-05-20 11:21:12 +0300
committerYuval Adam <yuv.adm@gmail.com>2011-05-20 11:21:12 +0300
commit2f3a4fc525b8869942207a9a96585145b3c0e236 (patch)
treec5df90f2ad041b3925c89f7e2b945e9cb7c11a0a
parent261813ac1dbafaeee7fcbc34cb3e163521f3e27f (diff)
added memoize class
-rw-r--r--templates/memoize.py13
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)