用于记录函数结果的修饰符(也用于类)
python-memo的Python项目详细描述
说明
memoize和keyed memoize装饰器。
- memo:经典的memoize装饰器。它有一个缓存 args -> result这样您就不会继续执行相同的计算了。
- keymemo(key):此装饰器工厂充当memo,但它允许 指定接受修饰函数的key函数 并计算一个key值以用作缓存字典中的键。这种方式 例如,可以使用字典的单个值作为缓存的键, 或者在将某些内容传递到缓存之前应用函数。
- instancememo:可以应用于 类函数。它保留一个缓存args -> result,这样您就不会继续 进行同样的计算。缓存保存在类命名空间中。
- instancekeymemo(key):这个装饰工厂的工作方式类似于 instancememo和keymemo,因此它允许指定 根据函数参数生成缓存密钥,并可以应用 对函数进行分类。
用法
frommemoimportmemo@memodeffibonacci(n):ifn<=2:return1returnfibonacci(n-1)+fibonacci(n-2)
frommemoimportkeymemo@keymemo(lambdatup:tup[0])deffunction(tup):# build a cache based on the first value of a tuple...