Last active 1728394071

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

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