lru_cache装饰器
lru_cache是Python标准库中的一个装饰器,可以用于缓存函数的结果,有几个比较有意思的特性:
lru_cache会将函数的参数和返回值存储在一个字典中,以便在下次调用时可以直接返回结果,而不必重新计算。lru_cache有两个可选参数:maxsize和typed。maxsize指定缓存的大小,而typed指定是否对不同类型的参数使用不同的缓存。lru_cache使用LRU(最近最少使用)算法来管理缓存。当缓存达到最大大小时,它会删除最近最少使用的条目。lru_cache只能用于不可变参数的函数。如果函数有可变参数,则不适用。
举个例子
下面的例子中,假设db_query是一个比较耗时的数据库操作,而且希望加载以后,就从缓存中读取,不要频繁的访问数据库,可以给函数db_query加上一个lru_cache的装饰器,这样,在第一次读取以后,key和值就被缓存了,下次再访问的时候,就会从缓存中读取。
在下面的例子中,限制了缓存的最大数量是3,当缓存第4个元素的时候,就会把其中的一个元素移除,下次再访问被移除的元素时,就会再次调用真正的查询操作。
from functools import lru_cache
@lru_cache<

lru_cache是Python标准库中的一个缓存装饰器,使用LRU算法,当达到maxsize限制时,会淘汰最近最少使用的函数结果。适用于不可变参数的函数,如耗时的数据库查询,以提高性能。但不适合缓存可能变化的内容。
最低0.47元/天 解锁文章
1267

被折叠的 条评论
为什么被折叠?



