import timeclass Timer:def __init__(self):self.start_time = Noneself.end_time = Noneself.elapsed_time = Nonedef __enter__(self):self.start_time = time.time()return selfdef __exit__(self, exc_type, exc_val, exc_tb):self.end_time = time.time()self.elapsed_time = self.end_time - self.start_timeprint(f"Elapsed time: {self.elapsed_time:.6f} seconds")def start(self):self.start_time = time.time()def stop(self):self.end_time = time.time()self.elapsed_time = self.end_time - self.start_timereturn self.elapsed_time@staticmethoddef timer_decorator(func):def wrapper(*args, **kwargs):timer = Timer() timer.start()result = func(*args, **kwargs)timer.stop()print(f"Function '{func.__name__}' executed in {timer.elapsed_time:.6f} seconds")return resultreturn wrapper
@Timer.timer_decorator
def example_function(n):return sum([i**2 for i in range(n)])
result = example_function(1000000)
Function 'example_function' executed in 0.262828 seconds