ホームページ >バックエンド開発 >Python チュートリアル >メモ化により Python 関数のパフォーマンスはどのように向上するのでしょうか?
Python のメモ化を理解する
プログラミングにおいて、メモ化は、関数呼び出しの結果を入力に基づいて保存することで効率を高めるために使用される手法です。引数。これらの結果を再計算する代わりに、保存された結果が直接返されるため、時間とリソースが節約されます。
Python での実装
Python でメモ化を利用するには、手動で管理することができます。結果をキャッシュするためのディクショナリ、または「functools」モジュールの組み込みの「@lru_cache」デコレータを活用するためのディクショナリ。以下は、手動アプローチを使用してメモ化で階乗を計算する例です。
factorial_memo = {} def factorial(k): if k < 2: return 1 if k not in factorial_memo: factorial_memo[k] = k * factorial(k - 1) return factorial_memo[k]
メモ化用のデコレーター
Python はバージョン 2.4 でデコレーターを導入し、デコレーターを適用するための簡潔な方法を提供しました。関数のメモ化。デコレータ クラス 'Memoize' を作成し、関数に適用できます。
class Memoize: def __init__(self, f): self.f = f self.memo = {} def __call__(self, *args): if not args in self.memo: self.memo[args] = self.f(*args) return self.memo[args] @Memoize def factorial(k): if k < 2: return 1 return k * factorial(k - 1)
The'@lru_cache' Decorator
'functools' モジュールは、メモ化のより堅牢な実装を提供する「@lru_cache」デコレーター。結果が自動的にキャッシュされ、過度のメモリ使用を防ぐためにキャッシュ サイズが処理されます。
要約すると、Python のメモ化は、以前の結果をキャッシュし、不必要な再計算を回避することで関数のパフォーマンスを最適化する強力な手法です。デコレータや手動キャッシュを活用することで、コードの効率を高め、応答性を向上させることができます。
以上がメモ化により Python 関数のパフォーマンスはどのように向上するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。