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

装饰器@log的定义中return f(x)的作用是什么

def log(f):
   def fn(x):
       print 'call ' + f.__name__ + '()...'
       return f(x)
   return fn

正在回答

2 回答

原来函数的返回值是多少,装饰后的返回值也是多少

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

返回装饰过的原程序啊

原程序像一辆白色的车f(x),装饰器像一个修理厂log(),把车开进去就是log(f),可以有多种装饰如喷漆fn(x)换轮胎fm(x),我们选择喷漆return fn,所以进入到fn(x)的流程中,走完这个流程后喷好了,把新车开出来f(x)

这里面不带括号的fn是指针,指向函数fn()所在的内存地址。带括号的fn(x) f(x) log(f)是具体的函数。

11 回复 有任何疑惑可以回复我~
#1

worry921

兄弟,你这个真形象
2016-07-26 回复 有任何疑惑可以回复我~
#2

worry921

兄弟,我一向就理解了讲的太好理解啦。还有,那个f指针的作用,我想再听听。想听听大神对高阶函数有没有什么生动的理解,我老是弄不清,它一会说什么对象,一会说什么拿一个f指代f(x)。非常感谢啦!
2016-07-26 回复 有任何疑惑可以回复我~
#3

昵称2_18位中英文 回复 worry921

不好意思很久没登陆了,高阶函数2-2讲得很清楚吧?那些除了接受参数还能接受其他函数的函数,就是高阶函数。在2-2的2分45秒中,def里面定义了add()函数能接受数字x,数字y,函数f,为什么第一行里面的f是函数?因为第二行return里面写了f(x)和f(y)。
2016-09-04 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

装饰器@log的定义中return f(x)的作用是什么

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