写一个python缓存装饰器
时间: 2023-07-01 15:11:19 浏览: 99
python 装饰器(示例)
这里给出一个使用 `lru_cache` 实现的 Python 缓存装饰器:
```python
from functools import lru_cache
def cache(func):
@lru_cache(maxsize=None)
def wrapper(*args, **kwargs):
return func(*args, **kwargs)
return wrapper
```
使用方法很简单,只需要在需要缓存的函数上加上 `@cache` 装饰器即可。比如:
```python
@cache
def fibonacci(n):
if n < 2:
return n
return fibonacci(n-1) + fibonacci(n-2)
```
这样,当调用 `fibonacci` 函数时,如果之前已经计算过相同的参数,就直接返回缓存中的结果,避免了重复计算。
阅读全文