Last active 1728394071

On fait de la mémoization avec un décorateur

Revision 8e6cb81eb9101ad226d5bca5c5662c9cd44dcce2

memo_decorator.py Raw
1
2# Factorial program with memoization using
3# decorators.
4
5# A decorator function for function 'f' passed
6# as parameter
7memory = {}
8def memoize_factorial(f):
9
10 # This inner function has access to memory
11 # and 'f'
12 def inner(num):
13 if num not in memory:
14 memory[num] = f(num)
15 print('result saved in memory')
16 else:
17 print('returning result from saved memory')
18 return memory[num]
19
20 return inner
21
22@memoize_factorial
23def facto(num):
24 if num == 1:
25 return 1
26 else:
27 return num * facto(num-1)
28
29print(facto(5))
30print(facto(5)) # directly coming from saved memory
31