獲取當前模塊內的所有函數,並為每個函數自動加裝裝飾器
阿新 • • 發佈:2018-06-06
HR star timer and UNC typeerror ttr pan 裝飾
示例代碼,用來,獲取當前模塊內的所有函數名,在為每個函數加裝飾器。
1 import sys 2 import time 3 from inspect import isfunction 4 5 def timer(func): 6 def wrapper(*args, **kwargs): 7 start = time.time() 8 getattr(sys.modules[‘__main__‘],func)(*args, **kwargs) 9 print(‘function %s run time %s‘ % (func, time.time() - start))View Code10 return wrapper 11 def foo(): 12 time.sleep(0.2) 13 print(‘function foo‘) 14 def bar(): 15 time.sleep(0.1) 16 print(‘function bar‘) 17 def f1(): 18 time.sleep(0.1) 19 print(‘function f1‘) 20 21 for func in dir(): 22 try: 23 if func != ‘timer‘ and isfunction(eval(func)) andfunc != ‘isfunction‘: 24 timer(func)() 25 except TypeError: 26 pass 27 28 ‘‘‘ 29 function bar 30 function bar run time 0.10009121894836426 31 function f1 32 function f1 run time 0.10005760192871094 33 function foo 34 function foo run time 0.2008991241455078 35 ‘‘‘
End
獲取當前模塊內的所有函數,並為每個函數自動加裝裝飾器