1、@timer:测量执行时间 @timer装饰器可以帮助我们跟踪特定函数的执行时间。通过用这个装饰器包装函数,我可以快速识别瓶颈并优化代码的关键部分。
[测量执行时间] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 import time def timer(func): def wrapper(*args, **kwargs): start_time = time.time() result = func(*args, **kwargs) end_time = time.time() print(f"{func.__name__} took {end_time - start_time:.2f} seconds to execute.") return result return wrapper @timer def my_data_processing_function(): # Your data processing code here
2.@log_results:日志输出 在运行复杂的数据分析时,跟踪每个函数的输出变得至关重要。@log_results装饰器可以帮助我们记录函数的结果,以便于调试和监控
[日志输出] 1 2 3 4 5 6 7 8 9 10 11 12 def log_results(func): def wrapper(*args, **kwargs): result = func(*args, **kwargs) with open("results.log", "a") as log_file: log_file.write(f"{func.__name__} - Result: {result}\n") return result return wrapper @log_results def calculate_metrics(data): # Your metric calculation code here
3.@suppress_errors:优雅的错误处理 @suppress_errors装饰器可以优雅地处理异常并继续执行,可以避免隐藏严重错误,还可以进行错误的详细输出,便于调试.
[错误处理] 1 2 3 4 5 6 7 8 9 10 11 12 13 def suppress_errors(func): def wrapper(*args, **kwargs): try: return func(*args, **kwargs) except Exception as e: print(f"Error in {func.__name__}: {e}") return None return wrapper @suppress_errors def preprocess_data(data): # Your data preprocessing code here
4.@debug:调试变得更容易 调试复杂的代码可能非常耗时。@debug装饰器可以打印函数的输入参数和它们的值,以便于调试:
[调试] 1 2 3 4 5 6 7 8 9 10 def debug(func): def wrapper(*args, **kwargs): print(f"Debugging {func.__name__} - args: {args}, kwargs: {kwargs}") return func(*args, **kwargs) return wrapper @debug def complex_data_processing(data, threshold=0.5): # Your complex data processing code here
1.@timer:测量执行时间 2.@log_results:日志输出 3.@suppress_errors:优雅的错误处理 4.@debug:调试变得更容易
数据STUDIO - source [https://mp.weixin.qq.com/s/JFaH_GqOFMARnzyWqV2TFQ] [10个简单但很有用的Python装饰器]