メソッドをキャッシュするための 2 つのツールは、functools.cached_property() と functools.lru_cache() です。どちらのモジュールも functools モジュールの一部です。 functools モジュールは、高階関数、つまり他の関数に作用する関数、または他の関数を返す関数用です。まず functools モジュールをインストールしてインポートしましょう -
functools モジュールをインストールするには、pip −
を使用します。 リーリー関数ツールをインポートするには −
リーリーキャッシュを 1 つずつ理解しましょう -
事実上不変である、インスタンスの高価な計算プロパティに役立ちます。
cached_property メソッドはパラメーターなしでのみ使用できます。インスタンスへの参照は作成されません。キャッシュされたメソッドの結果は、インスタンスがアクティブな間のみ保持されます。
この利点は、インスタンスが使用されなくなったときに、キャッシュされたメソッドの結果がすぐに解放されることです。欠点は、インスタンスが蓄積すると、蓄積されたメソッドの結果も蓄積されることです。彼らは際限なく成長することができます。
例を見てみましょう -
リーリーlru_cache メソッドは、ハッシュ可能なパラメータを持つメソッドに適しています。弱い参照を渡すために特別な努力をしない限り、インスタンスへの参照が作成されます。
最も最近使用されていないアルゴリズムの利点は、キャッシュが指定された最大サイズに制限されることです。欠点は、インスタンスがキャッシュから期限切れになるか、キャッシュがクリアされるまでアクティブのままであることです。
例を見てみましょう -
リーリーキャッシュを使用してフィボナッチ数を計算する例 −
リーリー ###出力### リーリー以上がPython でメソッド呼び出しをキャッシュするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。