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
浙公网安备 33010602011771号