例如,我有:
def readDb():
# Fetch a lot of data from db, spends a lot time
...
return aList
def calculation():
x = readdb()
# Process x
...
return y
在python解释器中,
每次我运行calculation()
都需要花费大量时间来重新读取数据库,这是不必要的。
如何存储readdb()
的结果以避免这种还原过程?
编辑:
我在这里发现了一个类似的问题,但我不太清楚答案
Save functions for re-using without re-execution
这只会命中数据库一次。
基本上,您希望将readDb()的结果保存到一个单独的变量中,然后可以传递给calculation()。
为现代Python更新了答案
对于仍在搜索如何执行此操作的任何人,标准库} 来执行此操作。
functools
包含一个装饰函数^{例如(来自文档):
这将存储对
32
的最后一次get_pep
调用,当使用相同参数调用时,将返回缓存值。写一个简单的装饰:
有关更一般的解决方案,请参见:http://code.activestate.com/recipes/498245-lru-and-lfu-cache-decorators/。
相关问题 更多 >
编程相关推荐