我有一个函数 foo(a, b, c= False, d = 0)
,我需要在函数内部为每个参数组合创建一个缓存字典。
我在网上看到的例子只使用了 *args
,但我也需要以正确的顺序获取 kwargs
值,并将它们存储在缓存字典中,并处理以下情况dicts 不能是键,而 kwargs
是一个 dict。
所以我是这样做的:这是要走的路吗?
foo(*args, **kwargs):
if (*args, *kwargs.values()) in cache:
return cache[(*args, *kwargs.values())]
基本上我将 kwargs
转换为值(按照插入顺序,因为我使用的是 Python3.6,这将是我想要的),然后与 *args 结合创建一个元组。