持久缓存修饰符
filecache的Python项目详细描述
filecache
filecache是一个decorator,它在解释器死后保存函数的返回值。例如,这对于下载
和分析网页的函数很有用。您只需指定返回值应该缓存多长时间(使用秒,例如time.sleep)。
用法:
返回值需要
可选取才能正常工作。
注意:缓存不会自动清除,只会被覆盖。如果
函数可以接收许多很少重复的不同参数,则
缓存可能永远增长。有一天,我可能会添加一个功能,每隔
100个调用扫描一次数据库以查找过时的内容和擦除内容。
注意:这在类的方法上用处不大,因为实例(self)
是缓存的,如果实例不相同,则不使用缓存。这是有意义的,因为类方法会受到附加到self的任何更改的影响。
如果您发现
它很有用并且/或者您有建议,那么您一定会很高兴听到。gmail上的ubershmeekel:gmail
>filecache.filecache
>def somefunc(x,y,z):
>returnx*y*z
>del somefunc.[filecache.[u-args-key(somefunc,(1,2,3),{}]
>del somefunc.[filecache.[u-db args-key(somefunc,(1,2,3),{}]
或者只是迭代somefunc.[u-db(它是一个搁置,像dict一样)来找到正确的键。是的
filecache是一个decorator,它在解释器死后保存函数的返回值。例如,这对于下载
和分析网页的函数很有用。您只需指定返回值应该缓存多长时间(使用秒,例如time.sleep)。
用法:
返回值需要
可选取才能正常工作。
注意:缓存不会自动清除,只会被覆盖。如果
函数可以接收许多很少重复的不同参数,则
缓存可能永远增长。有一天,我可能会添加一个功能,每隔
100个调用扫描一次数据库以查找过时的内容和擦除内容。
注意:这在类的方法上用处不大,因为实例(self)
是缓存的,如果实例不相同,则不使用缓存。这是有意义的,因为类方法会受到附加到self的任何更改的影响。
如果您发现
它很有用并且/或者您有建议,那么您一定会很高兴听到。gmail上的ubershmeekel:gmail
>filecache.filecache
>def somefunc(x,y,z):
>returnx*y*z
>del somefunc.[filecache.[u-args-key(somefunc,(1,2,3),{}]
>del somefunc.[filecache.[u-db args-key(somefunc,(1,2,3),{}]
或者只是迭代somefunc.[u-db(它是一个搁置,像dict一样)来找到正确的键。是的