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