Python中的部分装饰器
Python中的部分装饰器
1 #装饰器: 为原函数添加新功能而不改变原函数名,而且看起来简洁 2 3 import time 4 5 def showtime(f): 6 def wrapper(): 7 start = time.time() 8 f() 9 end = time.time() 10 print("Spend total time: %s" % (end - start)) 11 return wrapper 12 13 @showtime #func1 = showtime(func1) 14 def func1(): 15 print("func1...") 16 time.sleep(2) 17 18 @showtime #func2 = showtime(func2) 19 def func2(): 20 print("func2...") 21 time.sleep(3) 22 23 func1() 24 func2()
执行效果如下:
func1...
Spend total time: 2.0004794597625732
func2...
Spend total time: 3.000804901123047
装饰器的进一步使用
1 # 累加器_功能函数加参数,并且为装饰器也加上参数 2 3 import time 4 5 def logger(flag): 6 def showtime(func): 7 def wrapper(*tps): 8 start = time.time() 9 func(*tps) 10 stop = time.time() 11 print("You spend time: %s"%(stop - start)) 12 if flag == 'true': 13 print("打印日志") 14 return wrapper 15 return showtime 16 17 @logger('true') 18 def add(*tuples): 19 sums = 0 20 for i in tuples: 21 sums += i 22 print("Total sum: %s"%sums) 23 time.sleep(1) 24 25 add(1,2,3,4,5)
执行效果如下:
Total sum: 15
You spend time: 1.0005431175231934
打印日志
Follow your heart, do whatever you want.

浙公网安备 33010602011771号