我经常遇到这样的情况,我有数据,这是耗时的获取。这在调试时变得特别烦人。你知道吗
我通常首先运行查询并将结果转储到pickle中:
import pickle
d = the_data_query_which_takes_time()
with open("cache.pickle", "wb") as f:
pickle.dump(d, f)
然后,对于调试/测试:
import pickle
#d = the_data_query_which_takes_time()
with open("cache.pickle", "rb") as f:
d = pickle.load(f)
虽然这基本上是可行的,但它不是一种非常实用的缓存结果的方法。有没有一种更适合Python和可重复使用的方法?你知道吗
我想你在找一种叫做
memoization
的东西:从Pythonic的角度来看,这通常是通过decorator或类来完成的。下面是一个涉及装饰师的简单案例:
以下是一些有用的链接,可帮助您入门:
http://www.python-course.eu/python3_memoization.php
https://wiki.python.org/moin/PythonDecoratorLibrary
http://www.thumbtack.com/engineering/a-primer-on-python-decorators/
http://www.pycogsci.info/?p=221
相关问题 更多 >
编程相关推荐