1、lru_cache提供的功能:
lru_cache缓存装饰器提供的功能有:
缓存被装饰对象的结果(基础功能)
获取缓存信息
清除缓存内容
根据参数变化缓存不同的结果
LRU算法当缓存数量大于设置的maxsize时清除最不常使用的缓存结果
2、lru_cache的实现:
如上所示,lru_cache可传入的参数有两个,如果不传入参数,则使用默认参数。maxsize表示的是被装饰的方法最大可缓存的结果数量,如果是默认值,则表示可缓存128个返回结果,如果maxsize传入的参数是None,则表示可以缓存无限个结果。如果typed设置为true,那么不同类型的函数参数将被分别缓存。例如,f(3)和f(3.0)将被视为不同分别缓存。
3、functiontools.wrap装饰器对lru_cache有影响。
参考博客:https://www.cnblogs.com/lifei01/p/14105346.html