Maison > développement back-end > Tutoriel Python > Comment la mémorisation peut-elle améliorer les performances des fonctions Python ?

Comment la mémorisation peut-elle améliorer les performances des fonctions Python ?

Barbara Streisand
Libérer: 2024-12-18 15:48:15
original
752 Les gens l'ont consulté

How Can Memoization Improve Python Function Performance?

Comprendre la mémorisation en Python

En programmation, la mémoïsation est une technique utilisée pour améliorer l'efficacité en stockant les résultats des appels de fonction en fonction de leur entrée arguments. Au lieu de recalculer ces résultats, les résultats stockés sont directement renvoyés, ce qui permet d'économiser du temps et des ressources.

Implémentation en Python

Pour utiliser la mémorisation en Python, vous pouvez soit gérer manuellement un dictionnaire pour mettre en cache les résultats ou exploiter le décorateur '@lru_cache' intégré du module 'functools'. Voici un exemple utilisant l'approche manuelle pour calculer des factorielles avec mémoïsation :

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]
Copier après la connexion

Décorateurs pour la mémorisation

Python a introduit les décorateurs dans la version 2.4, offrant une manière concise d'appliquer mémorisation des fonctions. Vous pouvez créer une classe de décorateur 'Memoize' et l'appliquer à votre fonction :

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)
Copier après la connexion

Le décorateur'@lru_cache'

Le module 'functools' fournit un Décorateur '@lru_cache' qui offre une implémentation plus robuste de la mémorisation. Il met automatiquement en cache les résultats et gère la taille du cache pour éviter une utilisation excessive de la mémoire.

En résumé, la mémorisation en Python est une technique puissante pour optimiser les performances des fonctions en mettant en cache les résultats précédents et en évitant les recalculs inutiles. En tirant parti des décorateurs ou de la mise en cache manuelle, vous pouvez améliorer l'efficacité de votre code et améliorer sa réactivité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal