ホームページ  >  記事  >  バックエンド開発  >  Python でメソッド呼び出しをキャッシュするにはどうすればよいですか?

Python でメソッド呼び出しをキャッシュするにはどうすればよいですか?

王林
王林転載
2023-09-10 17:37:02665ブラウズ

Python でメソッド呼び出しをキャッシュするにはどうすればよいですか?

メソッドをキャッシュするための 2 つのツールは、functools.cached_property() と functools.lru_cache() です。どちらのモジュールも functools モジュールの一部です。 functools モジュールは、高階関数、つまり他の関数に作用する関数、または他の関数を返す関数用です。まず functools モジュールをインストールしてインポートしましょう -

関数ツールのインストール

functools モジュールをインストールするには、pip −

を使用します。 リーリー

インポート関数ツール

関数ツールをインポートするには −

リーリー

キャッシュを 1 つずつ理解しましょう -

cached_property()

事実上不変である、インスタンスの高価な計算プロパティに役立ちます。

cached_property メソッドはパラメーターなしでのみ使用できます。インスタンスへの参照は作成されません。キャッシュされたメソッドの結果は、インスタンスがアクティブな間のみ保持されます。

この利点は、インスタンスが使用されなくなったときに、キャッシュされたメソッドの結果がすぐに解放されることです。欠点は、インスタンスが蓄積すると、蓄積されたメソッドの結果も蓄積されることです。彼らは際限なく成長することができます。

Example

の中国語訳は次のとおりです:

Example

例を見てみましょう -

リーリー

lru_キャッシュ

lru_cache メソッドは、ハッシュ可能なパラメータを持つメソッドに適しています。弱い参照を渡すために特別な努力をしない限り、インスタンスへの参照が作成されます。

最も最近使用されていないアルゴリズムの利点は、キャッシュが指定された最大サイズに制限されることです。欠点は、インスタンスがキャッシュから期限切れになるか、キャッシュがクリアされるまでアクティブのままであることです。

Example

の中国語訳は次のとおりです:

Example

例を見てみましょう -

リーリー

キャッシュを使用してフィボナッチ数を計算する例 −

リーリー ###出力### リーリー

キャッシュの例

それでは、functool cached_property() と lru_cache -

の完全な例を見てみましょう。 ああああ

以上がPython でメソッド呼び出しをキャッシュするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。