python3 装饰器

 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()
code

运行的流程:outer(fun)---> @outer--->outer(fun)--->inner()--->return inner
--->fun1()--->outer(fun)--->inner()--->print('装饰器!')--->fun1():--->fun()
(打印出fun1)--->print('test')

主要用途是当有多个函数需要同时改动时,写一个修饰器函数,然后对每个函数进行修饰(@outer),而不用到第个函数内部进行重复的写这个函数,同时当新的功能需要添加进这个函数时,如:前面print('装饰器!'),后面print('test'),也直接添加即可,同时,装饰器函数也可以有返回值。

原文地址:https://www.cnblogs.com/Andy963/p/5325446.html