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

关于@使用和decoractor内部运行的逻辑的疑问

这个方法只有一个参数,定义的时候可否只定义一个?还有如下问题有点疑问,希望有大佬帮忙看看解答....

http://img1.sycdn.imooc.com//5e65e7460001c13f19201048.jpg

正在回答

2 回答

是不是可以这么理解, 最后一行的 factorial(10)  其实已经不是原来的factorial()了,而是装饰过的factorial()

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

在这里@performance等价于factorial = performance(factorial),
而performance(f)这个函数的返回结果是sf,
所以factorial()这个函数就等价于sf(),
所以你factorial(10)就是在调用sf(x),
x就肯定是你传递的10啊。
不能performance(f)理解成performance(f(x)),
前者返回的是一个函数,按后者理解的话传递进去的是一个f(x)函数的调用结果,这样理解也没有意义,
因为decorator的目的就是在不改原函数代码的前提下,改变原函数的实现,肯定是要传个函数去改变,传个结果进去的话绕了半天,并没有解决要解决的问题呀


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

举报

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

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

进入课程

关于@使用和decoractor内部运行的逻辑的疑问

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号