python lru_缓存用户函数的示例,它是否允许控制参数的缓存方式?

python lru_缓存用户函数的示例,它是否允许控制参数的缓存方式?,python,lru,functools,Python,Lru,Functools,我有这样一个函数: def shippable_lines(api_object,data_dict): .... 通过检查data\u dict中的两个键,可以有效地缓存此函数 api\u对象不相关 我不想更改函数的签名 这回答了一个类似的问题,但引入了一个新模块: 有没有一种方法可以用纯lru缓存实现这一点 编辑 实际上,使用cachetools非常容易:这是一项专门确定的需求: from cachetools import LRUCache, cached shippable_lin

我有这样一个函数:

def shippable_lines(api_object,data_dict):
....
通过检查
data\u dict
中的两个键,可以有效地缓存此函数

api\u对象
不相关

我不想更改函数的签名

这回答了一个类似的问题,但引入了一个新模块:

有没有一种方法可以用纯lru缓存实现这一点

编辑 实际上,使用cachetools非常容易:这是一项专门确定的需求:

from cachetools import LRUCache, cached

shippable_lines_cache = LRUCache(maxsize=4096)

def shippable_lines_key(dear_cached_api, dear_sale: dict):
    return f"{dear_sale['ID']}-{dear_sale['LastModifiedOn']}"


@cached(shippable_lines_cache, key=shippable_lines_key)
def shippable_lines(dear_cached_api, dear_sale: dict) -> List[dict]:
        ...

我想您必须复制粘贴stdlib中的代码,并添加所需的功能。也许您可以覆盖
lru\u cache\u包装器
对象的
make\u key
功能。我想您必须复制粘贴stdlib中的代码,并添加所需的功能。也许您可以覆盖
lru\u cache\u包装器
对象的
make\u key
功能。