2016-04-06 15 views
1

私はデコレータ@lru_cache(maxsize=None)functoolsから使用しています。コードを実行するたびに再計算を避けるために、メモの値をファイルに保存することはできません。lru_cacheをPythonでエクスポートするには?

これを行うには、argsと値をファイルに印刷してから読み込むのとは違う方法がありますか?

+1

'functools.lru_cache()'は、任意の位置引数とキーワード引数、場合によっては最大キャッシュサイズで動作するように設計されています。これらの機能が必要ない場合は、独自のキャッシュ(別名memoize)デコレータを動かすことはあまり難しくありません。キャッシュは単なる辞書なので、ピクルス(またはそれを見たい場合はjson)としてディスクに保存し、後で再読み込みする機能を提供することができます。 lru_cacheソースコードも[available](https://hg.python.org/cpython/file/3.4/Lib/functools.py)です。ニーズに合わせて変更してください。 – RootTwo

+0

@RootTwoこのコメントを回答として追加できますか?これは確かに私が探していた答えです。 –

答えて

0

@CarlosPinzónあなたがリクエストしたとおり答えた:functools.lru_cache()は、任意の位置とキーワードの引数、場合によっては最大キャッシュサイズで動作するように設計されています。これらの機能が必要ない場合は、独自のキャッシュ(別名memoize)デコレータを動かすことはあまり難しくありません。キャッシュは単なる辞書なので、ピクルス(またはそれを見たい場合はjson)としてディスクに保存し、後で再読み込みする機能を提供することができます。 lru_cacheソースコードも利用できます。ニーズに合わせて変更してください。

0

いいえ、これを行う唯一の方法は、.cache_info()関数の情報を取得してファイルに書き込むことです。

必要な情報を含むCacheInfoオブジェクトです。

+1

_CacheInfoオブジェクトは、ヒット、ミス、最大サイズ、および現在のサイズのキャッシュ統計のみを格納します。キャッシュを保存して復元できるものはありません。 – RootTwo

関連する問題