使用多个装饰器

2022-09-18

多个装饰器使用的实例:

 1   # 定义一个装饰器  2   def make_p(func):  3      print( "  执行装饰器make_p  "  )  4  
 5   def inner():  6   # 对已有函数增加新的功能  7          result =  "  <p>  "  + func() +  "  </p>  " 
 8   # 和已有函数保持一致,如果已有函数有返回值,则这里也加上返回值;如果已有函数有参数,那么这里也加上参数。  9           return  result  10  
 11       return  inner  12  
 13   # 定义第二个装饰器  14   def make_div(func):  15      print( "  执行装饰器make_div  "  )  16      
 17   def inner():  18   # 对已有函数增加新的功能  19          result =  "  <div>  "  + func() +  "  </div>  " 
 20   # 和已有函数保持一致,如果已有函数有返回值,则这里也加上返回值;如果已有函数有参数,那么这里也加上参数。  21           return  result  22  
 23       return  inner  24  
 25   # 设置装饰器语法糖  26   @make_div  27   @make_p  28   # 原来的函数  29   def content():  30       return   "  人生苦短,我用python!  " 
 31  
 32   if  __name__ ==  '  __main__  '  :  33      result = content()  34      print(result)

运行的结果如下:

 

   由结果图可知,多个装饰器同时使用,会先执行内部函数,离原来函数距离最近的装饰器,之后,再执行外层的装饰器。

标签: python

添加新评论