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
- Configure Flask-Caching
- Armazene uma visualização em cache com cached
- Memorize funções dispendiosas
- Invalide e faça entradas do cache expirarem