为了账号安全,请及时绑定邮箱和手机立即绑定

无参的decorator这章好难理解啊

有更通俗易懂的解释么?现在是知其然不知其所以然,只能照葫芦画瓢了。

正在回答

3 回答

这是前面一位同学的写的,我也是看了他写的这个才明白的,希望对你有所帮助,也顺便谢谢这位同学!

首先定义decorator

def log(f):                                     #定义装饰器高阶函数,以要装饰的原函数 f 作为参数

        def fn(x):                                  #内部相当于重构要装饰的函数f,重新命名为fn,

                  print 'call ' + f.__name__ + '()...'    #这是装饰器具体的装饰内容

                  return f(x)                    #为了不重写原来的函数f的代码,所以用return f(x)代替原函数的代码。                  return fn                               #将被装饰过的新的函数fn返回

                   #装饰完后,原来的f(x)就已经被新的函数fn(x)所覆盖了,fn(x)中保留了原函数f(x)的作用,并加进去了新的作用。


9 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

无参的decorator这章好难理解啊

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信