67. Decorators for Timing Functions
Decorators for Timing Functions: Measuring Execution Time
1. Basic Timing Decorator
import time
# Timing decorator
def timing_decorator(func):
def wrapper(*args, **kwargs):
start_time = time.time() # Record start time
result = func(*args, **kwargs)
end_time = time.time() # Record end time
print(f"Execution time of {func.__name__}: {end_time - start_time:.4f} seconds")
return result
return wrapper
# Example function to measure
@timing_decorator
def slow_function():
time.sleep(2) # Simulating a time-consuming operation
return "Done"
# Call the function
slow_function()Output:
2. Decorator with Arguments
Output:
3. Timing Decorator for Multiple Functions
Output:
4. Using functools.wraps for Preserving Function Metadata
Output:
5. Decorator for Asynchronous Functions
Output:
6. Using Time in Nanoseconds
Output:
7. Timing Function with Return Value
Output:
8. Using Timing Decorators with Function Arguments
Output:
9. Decorator for Profiling Multiple Functions
Output:
10. Combining Multiple Decorators
Output:
Last updated