python3.11的functools模块中@functools.lru_cache函数的作用?以列表方式写出该函数必传参数和所有可选参数并说明含义?一个简单的案例并加上注释?
时间: 2023-06-13 18:04:11 浏览: 156
基于python 将列表作为参数传入函数时的测试与理解
5星 · 资源好评率100%
`functools.lru_cache`是Python 3.2版本引入的一个装饰器,用于为函数提供缓存支持,以提高函数的执行效率。
必传参数:
- `maxsize`: 缓存的最大元素数。默认值为128。
可选参数:
- `typed`: 如果为True,则不同类型的参数将分别缓存。默认值为False。
- `cache_clear`: 如果为True,则提供了一个`cache_clear()`方法用于清除缓存。默认值为False。
下面是一个简单的案例:
```python
import functools
@functools.lru_cache(maxsize=32)
def fibonacci(n):
if n < 2:
return n
return fibonacci(n-1) + fibonacci(n-2)
for i in range(10):
print(fibonacci(i))
```
这里定义了一个斐波那契数列的函数,使用@functools.lru_cache装饰器进行缓存优化。在循环中依次调用函数,可以发现函数的执行效率得到了明显的提升。
阅读全文