定义:装饰器本身就是一个函数,用于装饰其他函数。
功能:增强被装饰函数的功能。
装饰器一般接收一个函数作为参数,以实现功能增强
1 >>> def deco(func):#定义一个装饰器,它的参数是一个完整的函数 2 def wrapper():#定义一个类似外包装的东西 3 print('这是一个简单的运算')#外包装的语句 4 func()#传入的参数,即函数 5 print('精彩的完成了这次简单的运算')#外包装的语句 6 return wrapper 7 8 >>> @deco#指定装饰器 9 def add():#定义被装饰的函数 10 print(1+1) 11 12 13 >>> add()#调用被装饰的函数 14 这是一个简单的运算 15 2 16 精彩的完成了这次简单的运算 17 18 #分析:实际上我们只是想定义一个函数用来进行加法运算,但是我们加了装饰器用来装饰 19 #运算前后的语句,使得看上去更加完整有趣一些,这就是装饰器的由来
# 定义装饰器的过程 # 首先定义一个函数,传入的参数是一个函数 # 这个装饰器的名字就被称作是deco def deco(func): # 定义一个外包装,外包装里面有自己定义的属于外包装本身的内容 def wrapper(): print('这是一个简单的运算!') func()#外包装包裹着被传入的函数 print('精彩地完成了这次运算') # 返回外包装 return wrapper # 让我们来解析一下装饰器的工作过程 @deco def add(): print(1+1) add() # 首先定义一个被装饰的函数, # 函数上面用@加入装饰器 # 这个函数就作为装饰器的参数传入 # 然后装饰器开始工作,运行装饰器本身的东西 # 遇到传入的函数时,执行函数