天天看点

python装饰器

装饰器是把一个函数当作参数传递给另一个函数,然后另一个函数接受后再返回一个函数。

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)      

执行结果:

python装饰器