10 Day Python之装饰器
装饰器 1、开放封闭原则 开放:对于添加新功能是开放的 封闭:对于修改原功能是封闭的 2、装饰器的作用 在不更改原函数调用方式的前提下对原函数添加新功能 3、装饰器 1 # ①引子——为什么要有装饰器 2 为了在不修改原函数的基础上为函数添加新功能,产生了装饰器 3 4 # ②简单装饰器 5 def deco(f): 6 def wrapper(): 7 """原函数前添加的功能""" 8 f() 9 """原函数后添加的功能""" 10 return wrapper 11 12 def func(): 13 print('这是原函数!') 14 15 func = deco(func) 16 func() 17 18 # ③装饰器的语法糖 19 def deco(f): 20 def wrapper(): 21 """原函数前添加的功能""" 22 f() 23 """原函数后添加的功能""" 24 return wrapper 25 26 @deco # ——>此处效果等同于 func = deco(func) 27 def func(): 28 print('这是原函数') 29 30 func() 31 32 # ④带返回值的装饰器 33 def deco(f): 34 def wrapper(): 35 """原函数前添加的功能""" 36 res = f() 37 ""