Python编程系列---装饰器执行的底层原理及流程

代码中No.1  No.2 ...表示执行流程

 1 """No.1  No.2 ...表示执行流程"""
 2 
 3 def set_func(func):  # <No.1-1>:func = show---->作用:func 指向原show 函数 ,
 4     def wrapper(*args, **kwargs):
 5         print("装饰器功能1")  # <No.3>:"装饰器功能1"
 6         return func(*args, **kwargs)  # <No.4>最重要理解的地方:此处的func 指向了show原来的函数内容,func()--->打印"----hello----"
 7 
 8     return wrapper  # <No.1-2>:show = wrapper--->作用:show指向了wrapper
 9 
10 
11 @set_func  # <No.1>:show =set_func(show1)--->作用:将func指向了show,再将show指向了wrapper
          
12 def show(): 13 print("----hello----") # <No.5>:打印"----hello----" 14 15 16 show() # <No.2>:开始执行show 但show 指向了wrarrpe 即开始执行wrapper 17 18 19 结果如下: 20 装饰器功能1 21 ----hello---- 22 23 进程已结束,退出代码 0

猜你喜欢

转载自www.cnblogs.com/ywk-1994/p/9502706.html