1、@lru_cache修饰器的介绍
@lru_cache修饰器是Python标准库中functools的一部分,LRU的英文全称名为Least Recently Used(最近最少使用)是缓存置换策略中的一种常用的算法。当缓存队列已满时,新的元素加入队列时,需要从现有队列中移除一个元素,LRU 策略就是将最近最少被访问的元素移除,从而腾出空间给新的元素。
以下为@lru_cache修饰器的源码部分:
从上图中可以看到@lru_cache修饰器在被使用的时候有如下两个参数可以设置:
maxsize:表示最多缓存的次数,如果为 None,则无限制,设置为2的n次幂时,性能最佳
typed:默认值为False,如果 typed的值为True,则表示不同参数类型的调用将分别缓存(例如下面示例中的f2(3) 和 f2(3.0))
下面看两个实例,第一个实例: