associação pythonbrasil[11] django zope/plone planet Início Logado como (Entrar)

CacheDeMetodos

Classe de exemplo demonstrando um método simples de se fazer cache dos resultados dos métodos em uma classe.

   1 class Cache:
   2     def __init__(self):
   3         # cache do metodo fatorial()
   4         self.c_fatorial = {}
   5         
   6     def fatorial(self,  x):
   7         result = 0
   8         # verificando cache
   9         if x in self.c_fatorial.keys():
  10             return self.c_fatorial[x]
  11         # processamento normal
  12         if x <= 1:
  13             result = 1
  14         else:
  15             result = x * self.fatorial(x - 1)
  16         
  17         self.c_fatorial[x] = result
  18         return result
  19         
  20 # Evento principal
  21 if __name__ == '__main__':
  22     c = Cache()
  23     print c.fatorial(5) # aqui o fatorial é processado.
  24     print c.fatorial(5) # e aqui ele é obtido do cache.