Memahami Memoisasi dalam Python
Dalam pengaturcaraan, memoisasi ialah teknik yang digunakan untuk meningkatkan kecekapan dengan menyimpan hasil panggilan fungsi berdasarkan inputnya hujah. Daripada mengira semula hasil ini, hasil yang disimpan akan dikembalikan terus, menjimatkan masa dan sumber.
Pelaksanaan dalam Python
Untuk menggunakan penghafalan dalam Python, anda boleh mengurus secara manual kamus untuk menyimpan hasil carian atau memanfaatkan penghias '@lru_cache' terbina dalam daripada modul 'functools'. Berikut ialah contoh menggunakan pendekatan manual untuk mengira pemfaktoran dengan menghafal:
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]
Penghias untuk Menghafal
Python memperkenalkan penghias dalam versi 2.4, menyediakan cara ringkas untuk memohon hafalan kepada fungsi. Anda boleh mencipta kelas penghias 'Memoize' dan gunakannya pada fungsi anda:
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)
Penghias'@lru_cache'
Modul'functools' menyediakan Penghias '@lru_cache' yang menawarkan pelaksanaan hafalan yang lebih mantap. Ia secara automatik cache keputusan dan mengendalikan saiz cache untuk mengelakkan penggunaan memori yang berlebihan.
Ringkasnya, hafalan dalam Python ialah teknik yang berkuasa untuk mengoptimumkan prestasi fungsi dengan menyimpan cache hasil sebelumnya dan mengelakkan pengiraan semula yang tidak perlu. Dengan memanfaatkan penghias atau caching manual, anda boleh meningkatkan kecekapan kod anda dan meningkatkan tindak balasnya.
Atas ialah kandungan terperinci Bagaimanakah Memoisasi Boleh Meningkatkan Prestasi Fungsi Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!