一、常规的装饰器,比如 @auth,执行2步操作:
1、执行auth函数,并传参func进来
2、获取返回值,并赋值给被装饰器的函数的函数名(如让fetch_server_list等于返回值)
二、而带参数的装饰器,比如 @auth(before,after),则执行3步操作:
1、执行auth(before,after)这个函数,得到返回值ret(假设返回值为ret)
2、创建装饰器,获取返回值,拼接为@ret
3、相当于@auth函数的2个步骤:
1)执行ret函数
2)将ret函数的返回值赋值给被装饰器的函数的函数名
本文出自 “苦咖啡's运维之路” 博客,请务必保留此出处http://alsww.blog.51cto.com/2001924/1718424
python学习系列之python装饰器基础(6)---装饰器加参数
原文地址:http://alsww.blog.51cto.com/2001924/1718424