Compiled objects should also have a names_dict.

This commit is contained in:
Dave Halter
2014-12-26 12:49:40 +01:00
parent bfaef9815c
commit ed3cf5577e
3 changed files with 63 additions and 18 deletions
+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