关于@使用和decoractor内部运行的逻辑的疑问
这个方法只有一个参数,定义的时候可否只定义一个?还有如下问题有点疑问,希望有大佬帮忙看看解答....
这个方法只有一个参数,定义的时候可否只定义一个?还有如下问题有点疑问,希望有大佬帮忙看看解答....
2020-03-09
在这里@performance等价于factorial = performance(factorial),
而performance(f)这个函数的返回结果是sf,
所以factorial()这个函数就等价于sf(),
所以你factorial(10)就是在调用sf(x),
x就肯定是你传递的10啊。
不能performance(f)理解成performance(f(x)),
前者返回的是一个函数,按后者理解的话传递进去的是一个f(x)函数的调用结果,这样理解也没有意义,
因为decorator的目的就是在不改原函数代码的前提下,改变原函数的实现,肯定是要传个函数去改变,传个结果进去的话绕了半天,并没有解决要解决的问题呀
举报