装饰模式有很多经典的使用场景,例如插入日志、性能测试、事务处理等等。
有了装饰器,就可以提取大量函数中与本身功能无关的类似代码,从而达到代码重用的目的。
def calcTime(func):
print('开始执行')
startTime=time.time()
func()
endTime=time.time()
print('结束计时')
msecs=(endTime - startTime)*1000
print('性能测试结果:' +func.__name__+'函数耗时:%f ms' %msecs)
@calcTime
def func1():
print('func1 start...')
time.sleep(0.6)
print('func1 end...')