s3r*_*vac 4 python decorator memoization
要在Python中为函数添加memoization,functools.lru_cache()可以使用装饰器:
import functools
@functools.lru_cache(maxsize=None)
def my_func():
...
Run Code Online (Sandbox Code Playgroud)
但是,我想为上面的用法定义以下别名,functools.lru_cache()以使代码更具可读性:
@memoize
def my_func():
...
Run Code Online (Sandbox Code Playgroud)
我的问题是:如何定义这样的别名?以下代码不起作用:
memoize = functools.partial(functools.lru_cache, maxsize=None)
Run Code Online (Sandbox Code Playgroud)
你不需要functools.partial它,因为它已经设置为接受两次调用.只需称呼一次:
memoize = functools.lru_cache(maxsize=None)
Run Code Online (Sandbox Code Playgroud)
然后使用别名作为装饰器:
@memoize
def my_func():
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
302 次 |
| 最近记录: |