def call(self, function, args=None, kw=None):
if args is None:
args = ()
if kw is None:
kw = {}
arguments = inspect.getcallargs(function, *args, **kw)
key = self.key_maker.key(function, arguments)
try:
value = self.cache.get(key)
except KeyError:
value = function(*args, **kw)
self.cache.set(key, value)
if self.return_copies:
value = copy.deepcopy(value)
return value
评论列表
文章目录