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
本文出自 “于昊(Pcdog)的博客” 博客,请务必保留此出处http://433266.blog.51cto.com/423266/1740881
原文:http://433266.blog.51cto.com/423266/1740881