#! /usr/bin/python3
# ===================================================================
# From YouTube video: "Python Decorators Tutorial"
#
# to remove duplicate performance timing code in every function
# ===================================================================
import time
def time_it(func):
def wrapper(*args,**kwargs):
start = time.time()
result = func(*args,**kwargs)
end = time.time()
print('{:11} took {} mil sec'.
format(func.__name__,(end-start)*1000))
return result
return wrapper
@time_it
def calc_square(numbers):
##start = time.time()
results = []
for number in numbers:
results.append(number*number)
##end = time.time()
##print('calc_square took {} mil sec'.format((end-start)*1000))
return results
@time_it
def calc_cube(numbers):
##start = time.time()
results = []
for number in numbers:
results.append(number*number*number)
##end = time.time()
##print('calc_cube took {} mil sec'.format((end-start)*1000))
return results
array = range(1,1000000)
out_square = calc_square(array)
out_cube = calc_cube(array)