2017-07-26 11 views
3

一般的な問題:関数の終了時に変数にアクセスするにはどうすればよいですか?lru_cacheのキャッシュにアクセスする

具体的な問題:どのように私はfunctools.lru_cache()で包まれたPython関数からの生cacheにアクセスすることができますか? https://github.com/python/cpython/blob/f0851910eb8e711bf8f22165cb0df33bb27b09d6/Lib/functools.py#L491

fib()がメモ化されると、lru_cachecache_info()cache_clear()機能を追加します:cacheが定義されているのはここ

@lru_cache(maxsize=None) 
def fib(n): 
    if n < 2: 
     return n 
    return fib(n-1) + fib(n-2) 

>>> [fib(n) for n in range(16)] 
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610] 

>>> fib.cache_info() 
CacheInfo(hits=28, misses=16, maxsize=None, currsize=16) 

がある

私は、関数(docsから取られた例)をmemoizeなら...ラッパーに。 cache_clear()にはcacheへのアクセス権があり、cache_clear()へのアクセス権を持っていますので、何とかアクセスしてcacheに直接アクセスできますか?

+1

それはあなたができるはずのようではありません、それはその関数のローカル変数です。あなたが持っている唯一の希望は反映です。なぜあなたはこれをやろうとしていますか? –

+0

なぜですか?出来るからです。ほんとに?なんで?私は開発中に再起動の間にキャッシュを保持したい。 – gdw2

+1

[this](https://stackoverflow.com/questions/15585493/store-the-cache-to-a-file-functools-lru-cache-in-python-3-2)を読んでいますか? – idjaw

答えて

関連する問題