标签:
1 def outer(fun): # f 为用out装饰的函数 2 def inner(): 3 print(‘装饰器!‘) 4 fun() 5 print(‘test‘) 6 return inner 7 8 @outer 9 def fun1(): 10 print(‘fun1‘) 11 12 fun1()
运行的流程:outer(fun)---> @outer--->outer(fun)--->inner()--->return inner
--->fun1()--->outer(fun)--->inner()--->print(‘装饰器!‘)--->fun1():--->fun()
(打印出fun1)--->print(‘test‘)
主要用途是当有多个函数需要同时改动时,写一个修饰器函数,然后对每个函数进行修饰(@outer),而不用到第个函数内部进行重复的写这个函数,同时当新的功能需要添加进这个函数时,如:前面print(‘装饰器!‘),后面print(‘test‘),也直接添加即可,同时,装饰器函数也可以有返回值。
标签:
原文地址:http://www.cnblogs.com/Andy963/p/5325446.html