Compiled objects should also have a names_dict.

This commit is contained in:
Dave Halter committed 2014-12-26 12:49:40 +01:00
1 parent bfaef9815c
commit ed3cf5577e
3 files changed
+63 -18

No files matched your search

+4 -5
View File
@@ -149,16 +149,15 @@ def underscore_memoization(func):
return wrapper
def memoize(func):
def memoize_method(method):
"""A normal memoize function."""
dct = {}
def wrapper(*args, **kwargs):
def wrapper(self, *args, **kwargs):
dct = self.__dict__.setdefault('_memoize_method_dct', {})
key = (args, frozenset(kwargs.items()))
try:
return dct[key]
except KeyError:
result = func(*args, **kwargs)
result = method(self, *args, **kwargs)
dct[key] = result
return result
return wrapper