Python中给无参@staticmethod加@lru_cache是否有用?缓存键是什么?
无参静态方法使用@lru_cache的作用与缓存键说明
是否多余?
使用@lru_cache(maxsize=None)并不多余。理由如下:
- 虽然
run_expensive_computation没有入参,但它内部调用的expensive_function未被缓存,每次直接调用run_expensive_computation都会触发expensive_function执行一次耗时计算。 - 加上缓存后,第一次调用会执行
expensive_function并将结果存入缓存,后续所有调用都会直接返回缓存的结果,避免重复执行昂贵的计算逻辑。
缓存中保存的键是什么?
缓存对应的键是空元组()。因为lru_cache会将函数的位置参数、关键字参数组合成唯一键来存储结果,而该方法没有任何参数,所以生成的键就是空元组。
内容的提问来源于stack exchange,提问作者user1008636
相关产品推荐
相关产品推荐

