def w1(func): def inner(): print ("w1,before") func() print("w1,after") return inner def w2(func): def inner(): print ("w2,before") func() print("w2,after") return inner @w2 @w1 def foo(): print ("foo") foo()
一個函數可以被多次裝飾,從上往下執行,盒子是外套裝飾器。
C:\Users\pcdog\AppData\Local\Programs\Python\Python35\python.exe C:/Users/pcdog/PycharmProjects/untitled/zhuangshiqi.py
w2,before
w1,before
foo
w1,after
w2,after
Process finished with exit code 0