您的位置:首页 > 编程语言 > Python开发

python 装饰器--替换or增强被装饰函数功能/能力

2020-03-01 07:31 381 查看

'''

初学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()

转载于:https://www.cnblogs.com/xuexizongjie/p/11013250.html

  • 点赞
  • 收藏
  • 分享
  • 文章举报
asdfj2623 发布了0 篇原创文章 · 获赞 0 · 访问量 353 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: