def out_outer(style): #根据传入的参数判断 写入文件还是直接print # style =1 直接打印, style=2写入 a.txt文件 def decorator_2(f): @wraps(f) def wraper(*args, **kwargs): time_start = time.time() ret = f(*args, **kwargs) time_end = time.time() used = time_end - time_start if style ==1: print('执行这个函数耗时%s'%(used)) else: with open('a.txt','a+',encoding='utf-8') as f1: f1.write('执行这个函数耗时%s'%(used)) f1.write('\n') return ret return wraper return decorator_2 @out_outer(1) def fun_a(a,b): time.sleep(3) return a+b @out_outer(2) def fun_b(a,b): time.sleep(2) return a+b fun_a(1,2) fun_b(3,4)
带参数的装饰器_根据不同状况写日志
最新推荐文章于 2024-08-09 11:44:26 发布