如何创建functools.lru_cache的别名用于memoization?
作者:互联网
要在Python中为函数添加memoization,可以使用functools.lru_cache()
装饰器:
import functools
@functools.lru_cache(maxsize=None)
def my_func():
...
但是,我想为functools.lru_cache()的上述用法定义以下别名,以使代码更具可读性:
@memoize
def my_func():
...
我的问题是:如何定义这样的别名?以下代码不起作用:
memoize = functools.partial(functools.lru_cache, maxsize=None)
解决方法:
你不需要functools.partial,因为它已经设置为接受两次调用.只需称呼一次:
memoize = functools.lru_cache(maxsize=None)
然后使用别名作为装饰器:
@memoize
def my_func():
...
标签:python,decorator,memoization 来源: https://codeday.me/bug/20190612/1224403.html