diff options
| author | Yuval Adam <yuv.adm@gmail.com> | 2011-05-20 11:21:12 +0300 |
|---|---|---|
| committer | Yuval Adam <yuv.adm@gmail.com> | 2011-05-20 11:21:12 +0300 |
| commit | 2f3a4fc525b8869942207a9a96585145b3c0e236 (patch) | |
| tree | c5df90f2ad041b3925c89f7e2b945e9cb7c11a0a /templates | |
| parent | 261813ac1dbafaeee7fcbc34cb3e163521f3e27f (diff) | |
added memoize class
Diffstat (limited to 'templates')
| -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) |
