亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区
Chinaunix
標題:
python 緩存函數(shù)調用的例子
[打印本頁]
作者:
wojiaohesen
時間:
2012-11-21 16:05
標題:
python 緩存函數(shù)調用的例子
本帖最后由 wojiaohesen 于 2012-11-21 16:08 編輯
給大家分享一個緩存調用的例子。在python2.7中通過測試, 在其他的版本中, 請找到inpsect.getcallargs的代替實現(xiàn)即可, 可參看activepython.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
class CacheCall(object):
def __init__(self, fn):
self.func = fn
self.cache = dict()
self.hits = 0
self.misses = 0
def __call__(self, *args, **kwargs):
import inspect
_key = inspect.getcallargs(self.func, *args, **kwargs)
key = tuple(sorted(_key.items()))
result = self.cache.get(key, None)
if result:
self.hits += 1
return result
else:
self.misses += 1
result = self.func(*args, **kwargs)
self.cache[key] = result
return result
def __str__(self):
from pprint import pformat
return pformat(self.cache)
@CacheCall
def target(x, *y):
return x+len(y)
if __name__ == "__main__":
print target(1,)
print target(1,)
print target(2,)
print target(3, (2,3,44))
print target
復制代碼
歡迎光臨 Chinaunix (http://www.72891.cn/)
Powered by Discuz! X3.2