1
Amy 原创整理|资料核验:2026-10-30
Python官方文档说明,lru_cache使用字典保存结果,函数的位置参数和关键字参数都必须可哈希。对于普通由可哈希元素组成的序列,可以在明确语义后考虑传入tuple;不要直接把可变list当作缓存键。
教学示例(虚构输入):一个只依赖整数序列计算结果的函数,接收(3, 7, 9)可以作为缓存参数设计;若结果还依赖文件当前内容或其他外部变化,仅缓存参数并不能保证结果仍然新鲜。
文档还提示,maxsize=None会取消容量上限,缓存可持续增长;线程安全也不保证并发首次调用只执行一次。Amy建议:先确认函数输入、结果有效期和缓存容量,再加装饰器,并用实际命中情况判断是否有收益。