0Pricing
Flask Academy · Aula

Memorize funções dispendiosas

Armazene resultados de funções em cache por argumentos.

Memorize funções dispendiosas é uma aula grátis de Flask Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Flask Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Flask Academy inclui 4 aulas no total.

Além das visualizações completas

Às vezes, apenas um auxiliar lento é o problema, não a página inteira. A memorização armazena em cache o resultado de uma função, usando seus argumentos como chave.

O decorador memoize

Envolva uma função com @cache.memoize(). Os mesmos argumentos retornam o resultado armazenado em vez de serem recalculados. 💡

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

Chaveado pelos argumentos

Memoize cria a chave a partir dos argumentos. heavy(2) e heavy(5) são armazenados separadamente, cada um preservando sua própria resposta.

cached versus memoize

Use cached para visualizações indexadas pela URL e memoize para funções comuns indexadas por suas entradas. Eles resolvem problemas de camadas diferentes.

Definir um tempo limite para memoize

Assim como nas visualizações, forneça a memoize um timeout para que os resultados expirem. Depois disso, a próxima chamada recalcula e armazena o resultado novamente.

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

Perfeito para funções puras

Memoize é ideal para funções puras: a mesma entrada sempre produz a mesma saída, sem efeitos colaterais que possam ser perdidos.

Evitar armazenar efeitos colaterais

Não use memoize em uma função que envia e-mails ou grava uma linha. Em um acerto de cache, o corpo da função é ignorado, então o efeito nunca acontece.

Métodos exigem cuidado

Para métodos de instância, a chave inclui self. Dois objetos são armazenados separadamente, o que geralmente é exatamente o que você deseja.

Remover um resultado memorizado

Você pode remover uma única entrada com delete_memoized, passando a função e os argumentos exatos a serem excluídos.

cache.delete_memoized(rates)

Limpar por argumento

Passe argumentos para delete_memoized a fim de remover apenas essa variante, deixando todos os outros resultados armazenados em cache intactos.

cache.delete_memoized(heavy, 5)

Medir antes de memorizar

Use memoize apenas no que é realmente lento. Faça o perfil de desempenho primeiro, pois armazenar trabalho barato adiciona o custo das chaves com pouco ganho real.

Verificação rápida

Você usa memoize em uma função que também registra cada chamada no seu banco de dados.

Recapitulação: memorização

Você pode memorizar funções puras lentas, indexar resultados pelos argumentos, definir tempos limite e removê-los com delete_memoized. 🎯

Perguntas Frequentes

A aula “Memorize funções dispendiosas” é grátis?

Sim — o texto completo de “Memorize funções dispendiosas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Flask Academy, atualize para CoddyKit PRO. O curso de Flask Academy inclui 4 aulas no total.

O que vou aprender em “Memorize funções dispendiosas”?

Armazene resultados de funções em cache por argumentos. Você pratica Flask Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Flask Academy?

Nenhuma experiência prévia é necessária. Flask Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Memorize funções dispendiosas”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Flask Academy?

Sim. Cada aula de Flask Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Configure Flask-Caching
  2. Armazene uma visualização em cache com cached
  3. Memorize funções dispendiosas
  4. Invalide e faça entradas do cache expirarem
← Voltar para Flask Academy