python函数装饰器,只是高阶函数的一个语法包装而已,它的作用是可以不改变函数本身,但能够有机会改变函数的行为,给函数f(args)前后添加行为,或者改变它的参数传递等,而使用此函数的对象,依然是正常的调用,不同的装饰器,此函数调用的过程可能会有所变化。
@f2
@f1
def f(args)
两个装饰函数,f2和f1,那样等价于: f2(f1(f(args))),从f2->f1->f的调用顺序,依次使用后面的函数作为参数使用。正常情况下,在每个装饰器里面会调用一下被装饰的函数,不然装饰函数执行了,被装饰的函数没有执行,那就失去了装饰函数的意义。
f2(f)
print
def inner
f()#此f函数,是f1(f),二阶函数组合后的函数。
return inner