Heim > Backend-Entwicklung > Python-Tutorial > Wie kann die Memoisierung die Leistung von Python-Funktionen verbessern?

Wie kann die Memoisierung die Leistung von Python-Funktionen verbessern?

Barbara Streisand
Freigeben: 2024-12-18 15:48:15
Original
745 Leute haben es durchsucht

How Can Memoization Improve Python Function Performance?

Memoisierung in Python verstehen

In der Programmierung ist Memoisierung eine Technik, die zur Steigerung der Effizienz verwendet wird, indem die Ergebnisse von Funktionsaufrufen basierend auf ihrer Eingabe gespeichert werden Argumente. Anstatt diese Ergebnisse neu zu berechnen, werden die gespeicherten Ergebnisse direkt zurückgegeben, was Zeit und Ressourcen spart.

Implementierung in Python

Um die Memoisierung in Python zu nutzen, können Sie entweder manuell verwalten ein Wörterbuch, um die Ergebnisse zwischenzuspeichern oder den integrierten „@lru_cache“-Dekorator aus dem „functools“-Modul zu nutzen. Hier ist ein Beispiel für die Verwendung des manuellen Ansatzes zur Berechnung von Fakultäten mit Memoisierung:

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]
Nach dem Login kopieren

Dekoratoren für die Memoisierung

Python hat in Version 2.4 Dekoratoren eingeführt, die eine prägnante Möglichkeit zur Anwendung bieten Auswendiglernen von Funktionen. Sie können eine Dekoratorklasse „Memoize“ erstellen und auf Ihre Funktion anwenden:

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)
Nach dem Login kopieren

Der „@lru_cache“-Dekorator

Das Modul „functools“ bietet eine „@lru_cache“-Dekorator, der eine robustere Implementierung der Memoisierung bietet. Es speichert die Ergebnisse automatisch zwischen und verwaltet die Cache-Größe, um eine übermäßige Speichernutzung zu verhindern.

Zusammenfassend ist die Memoisierung in Python eine leistungsstarke Technik zur Optimierung der Funktionsleistung, indem frühere Ergebnisse zwischengespeichert und unnötige Neuberechnungen vermieden werden. Durch die Nutzung von Dekoratoren oder manuellem Caching können Sie die Effizienz Ihres Codes steigern und seine Reaktionsfähigkeit verbessern.

Das obige ist der detaillierte Inhalt vonWie kann die Memoisierung die Leistung von Python-Funktionen verbessern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage