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.