Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Memoisasi Boleh Meningkatkan Prestasi Fungsi Python?

Bagaimanakah Memoisasi Boleh Meningkatkan Prestasi Fungsi Python?

Barbara Streisand
Lepaskan: 2024-12-18 15:48:15
asal
745 orang telah melayarinya

How Can Memoization Improve Python Function Performance?

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]
Salin selepas log masuk

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)
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan