python裝飾器帶引數和方法帶引數的處理
阿新 • • 發佈:2022-05-18
閒話少說~~~
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__)