changeset 98:aa4ace1fb479

created
author 127.0.0.1
date Fri, 06 Dec 2013 23:41:03 +0100
parents d3b1da9d293f
children 71c013a28bc2
files hash4.py
diffstat 1 files changed, 23 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/hash4.py	Fri Dec 06 23:41:03 2013 +0100
@@ -0,0 +1,23 @@
+import functools
+
+def memoize(func):
+    cache = {}
+    separator = object()
+    @functools.wraps(func)
+    def wrapped(*args, **kwargs):
+        key = args
+        if kwargs:
+            key += (separator,) + tuple(sorted(kwargs.iteritems()))
+        try:
+            result = cache[key]
+        except KeyError:
+            result = cache[key] = func(*args, **kwargs)
+        return result
+    return wrapped
+
+@memoize
+def show(what):
+    print what
+
+show(what="something")
+show(what="something")
\ No newline at end of file