装饰器是把一个函数当作参数传递给另一个函数,然后另一个函数接受后再返回一个函数。
1、简单的例子
将func1函数传递给func2,然后func2返回函数func3,f接受
1 def func1(): 2 print("wuya goog goog study") 3 4 def func2(func): 5 def func3(): 6 func() 7 print("day day up") 8 9 return func3() 10 11 f = func2(func1)
2、带参
1 def func1(func): 2 # *args和**args表示参数不确定,*args可以看做是list。**args可以看做是个字典 3 def func2(*args,**kwargs): 4 print("*************") 5 func(*args,**kwargs) 6 print("*************") 7 8 return func2 9 10 11 @func1 12 # @相当于执行 func3 = func1(func3) 13 def func3(age): 14 print("wuya is %d" %age) 15 16 f = func3(-10)
执行结果: