proxy pattern import time def fib_cached (ncache)if return if in cachereturn cache[ncache[nfib_cached ( cachefib_cached ( cachereturn cache[nif __name__ ="__main__"cache {start_time time time(fib_sequence [fib_cached (xcachefor in range( )end_time time time(print"calculating the list of {fibonacci numbers took {secondsformatlen(fib_sequence)end_time start_time run this code on my machinethe same series of calculations now gives the following outputcalculating the list of fibonacci numbers took - seconds