Exercices Fonctions & Modules Decorateur de memoisation
🎉

Bravo!

Avancé 🧠 Fondamentaux 30 XP 0 personnes ont réussi

Decorateur de memoisation

La mémoïsation accélère drastiquement les fonctions coûteuses en gardant en cache les résultats déjà calculés. C'est le principe de functools.lru_cache en Python, utilisé en production pour les appels API, les calculs récursifs (Fibonacci), ou les requêtes coûteuses.

Le principe : un dictionnaire cache utilise les arguments comme clé. Si les mêmes arguments reviennent, on retourne le résultat du cache sans recalculer.

Écris un décorateur memoize qui met en cache les résultats d'une fonction. Le cache doit être accessible via l'attribut cache sur la fonction décorée.

Exemple :
@memoize
def carre(x): return x * x
carre(4) calcule et met en cache
carre(4) retourne depuis le cache
carre.cache donne {(4,): 16}

Tests (2/4)

Résultat correct
@memoize
def carre(x):
    return x * x
assert carre(4) == 16
assert carre(5) == 25
Cache utilise
compteur = [0]
@memoize
def lent(x):
    compteur[0] += 1
    return x + 1
lent(10)
lent(10)
lent(10)
assert compteur[0] == 1

+ 0 tests cachés

Indices (3 disponibles)

solution.py