python多个装饰器的先后顺序

当一个函数被多个装饰器装饰时,会从离函数最近的装饰器开始对函数进行装饰,离函数最远的装饰器最后装饰,越近的装饰器会在最终的函数的内层,越远的越会在函数的外层,所以最外层装饰器中的代码最先执行,最内层的装饰器的代码最后执行。 #!/usr/bin/env python3 def dec1(f): print("dec1, before") def dec(): print("dec1") f() return dec def dec2(f): print("dec2, before") def dec(): print("dec2") f() return dec def dec3(f): print("dec3, before") def dec(): print("dec3") f() return dec @dec3 @dec1 @dec2 def printf(): print("real function") printf() 这段代码将会输出 dec2, before dec1, before dec3, before dec3 dec1 dec2 real function…