python 装饰器示例
1 def wrapper_log(func): 2 """ 3 无参装饰器,也可以写成有参装饰器,True或Flase标记是否调用日志模块 4 功能一:执行失败,打印并记录错误日志信息,定位bug 5 功能二:记录用例执行时间 6 """ 7 8 from loguru import logger 9 from functools import wraps 10 import time 11 12 @wraps(func) # wraps使inner装的更像一个func 13 def inner(*args, **kwargs): 14 logger.info(f'{func.__name__}开始执行') 15 now1 = time.time() 16 17 try: 18 func(*args, **kwargs) 19 except Exception as e: 20 logger.error(f'执行失败,失败原因:{e}') 21 # logger.exception(e) 22 raise e 23 24 now2 = time.time() 25 logger.success(f'{func.__name__}执行成功!!!,执行用时:{now2 - now1}ms') 26 return func 27 28 return inner 29 30 31 @wrapper_log 32 def test_a(): 33 print(1 / 0) 34 35 36 if __name__ == '__main__': 37 test_a()