python装饰器带参数和方法带参数的处理
闲话少说~~~
from CustomLogger import mylog from time import sleep, time import functools """ 装饰器带参数和方法带参数实现,统计方法执行时间 """ log =mylog().get_log() list={} doc = {} def setup(name): """setup""" def opp(func): """opp""" @functools.wraps(func) # 不加该装饰器,funcA.__doc__ == op 。加了后 funcA才显示本身的doc属性 def op(*args, **kwargs): """op""" testName=name log.info("Test Item :[%s] Begin" % testName) starttime=time() func(*args, **kwargs) endtime=time() timeuse=endtime-starttime log.info("用时:%s" % int(timeuse)) list[func.__name__] = int(timeuse) doc[func.__doc__] = func.__doc__ return op return opp @setup('测试A') def funcA(a,b): """this A""" log.info('这是方法A里面的操作') sleep(1) print('end') print(a+b) @setup("测试B") def funcB(a): """this B""" log.info('这是方法B里面的操作') sleep(2) print('end') print(a) funcA(4,5) funcB("hi") log.info(list) log.info(doc) print(funcA.__doc__)
老铁,如果觉得本文对你有帮助,麻烦帮点个右下角的“推荐”,感谢!
本文来自博客园,作者:平行时空的旅者,转载请注明原文链接:https://www.cnblogs.com/yifengyu/p/16285288.html