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

关于@使用和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进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

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

进入课程

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

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