'''
初学python装饰器的一点心得:
装饰器,在不改变被装饰函数代码的情况下,增强被装饰函数能力,或者替换被装饰函数功能 。
不同于模块间的调用,是通过“被装饰”,实现函数功能double提升。
“被装饰”可随时调整,很灵活、很强悍。
'''
'''
下面的例子显示:
@timer 装饰say()函数时,
效果就是: timer函数+say函数 ,即 装饰者和被装饰者的功能叠加在一起执行,能力double 。
'''
import time
import nnlog
def timer(func):
def newFunc():
log = nnlog.Logger('zylog.txt')
st = time.time()
func()
runTime = time.time()-st
print('%s 的运行时间是 %s'%(func.__name__,runTime))
log.debug('%s 的运行时间是 %s'%(func.__name__,runTime))
return newFunc
@timer
''' 装饰器,装饰时,效果就是 timer函数+say函数 ,功能叠加在一起执行 '''
def say():
time.sleep(2)
print('say 函数!!!')
if __name__ == '__main__':
say()