20181003:学习python装饰器(确实有点绕)

  • 让我明白了一点点装饰器的文章:https://blog.csdn.net/z54572/article/details/61914937
  • 让我明白为什么要用装饰器的文章:https://www.jb51.net/article/99585.htm
    下面的代码是装饰器的原型。
    最后20行的新foo最终成为包裹了第4行老foo函数的wrapper的内容,只是名字还是foo,其实和第4行的老foo完全不是同一个函数,第4行的老foo被实际包裹在这个新foo里面了。
    通过这一转悠,实际达到了:不修改第4行foo函数的内容和调用方法,却增加了控制、检验或新功能的目的。虽然调用方法没变(foo()),但实际执行的新foo了,当然新foo中是包含了老foo的功能的,还增加了老foo中没有的功能。
    在这里插入图片描述
    下面是在原型的基础上用装饰器的结果,重点关注第11行的@timeit,在定义上加上这一行与上面例子中的第20行写的foo = timeit(foo)完全等价,只是用了python专有的@样式处理而已,千万不要以为@有另外的魔力。除了字符输入少了一些,没什么特别的。当然还有一个额外的好处:就是这样看上去更有装饰器的感觉。
    在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值