0Pricing
Flask Academy · Lezione

Memoizzare le funzioni costose

Memorizzi i risultati delle funzioni in base agli argomenti.

Memoizzare le funzioni costose è una lezione Flask Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Flask Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Flask Academy include 4 lezioni in totale.

Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.

Beyond Whole Views

Sometimes only one slow helper is the problem, not the whole page. Memoization caches a function result keyed by its arguments.

The memoize Decorator

You wrap a function with @cache.memoize(). Same arguments return the stored result instead of recomputing it. 💡

@cache.memoize()
def heavy(n):
    return slow_calc(n)

Keyed by Arguments

Memoize builds the key from the arguments. heavy(2) and heavy(5) are cached separately, each remembering its own answer.

cached vs memoize

Use cached for views keyed by URL, and memoize for plain functions keyed by their inputs. They solve different layers.

Set a memoize Timeout

Just like views, you give memoize a timeout so results expire. After it passes, the next call recomputes and re-stores.

@cache.memoize(timeout=120)
def rates():
    ...

Perfect for Pure Functions

Memoize shines on pure functions: same input always gives the same output, with no side effects to lose.

Avoid Caching Side Effects

Do not memoize a function that sends email or writes a row. On a cache hit the body is skipped, so the effect never runs.

Methods Need Care

For instance methods, the key includes self. Two objects cache separately, which is usually exactly what you want.

Drop One Memoized Result

You can evict a single entry with delete_memoized, passing the function and the exact arguments to clear.

cache.delete_memoized(rates)

Clear by Argument

Pass arguments to delete_memoized to drop just that variant, leaving every other cached result untouched.

cache.delete_memoized(heavy, 5)

Measure Before Memoizing

Only memoize what is actually slow. Profile first, because caching cheap work adds key overhead with little real gain.

Quick Check

You memoize a function that also logs each call to your database.

Recap: Memoization

You can memoize slow pure functions, key results by arguments, set timeouts, and evict with delete_memoized. 🎯

Domande Frequenti

La lezione «Memoizzare le funzioni costose» è gratuita?

Sì — il testo completo di «Memoizzare le funzioni costose» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Flask Academy, passa a CoddyKit PRO. Il corso Flask Academy include 4 lezioni in totale.

Cosa imparerò in «Memoizzare le funzioni costose»?

Memorizzi i risultati delle funzioni in base agli argomenti. Eserciti Flask Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Flask Academy?

Non è richiesta alcuna esperienza precedente. Flask Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Memoizzare le funzioni costose»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Flask Academy?

Sì. Ogni lezione Flask Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Configurare Flask-Caching
  2. Memorizzare una view con cached
  3. Memoizzare le funzioni costose
  4. Invalidare e far scadere le voci della cache
← Torna a Flask Academy