我希望有一个可以使用functools.lru_cache
的功能,但不是默认情况。我正在寻找一种使用函数参数来禁用lru_cache
的方法。目前,我有两个版本的函数,一个带有lru_cache
,一个没有。然后我又写了一个函数用来包装这些函数,并且提供一个参数来控制使用哪个函数。
def _no_cache(foo):
print('_no_cache')
return 1
@lru_cache()
def _with_cache(foo):
print('_with_cache')
return 0
def cache(foo, use_cache=False):
if use_cache:
return _with_cache(foo)
return _no_cache(foo)
有没有更简单的方法来做这件事?