Python装饰器函数
这里定义了一个func函数,打印‘我是func函数’
def func(): print('我是func函数'); time.sleep(1);
假设,想要在func()函数的基础之上新增的一个功能,计算func函数执行所用的时间
import time;#时间模块,处理时间操作#开闭原则,对扩展开放,对修改封闭def func(): print('我是func函数'); time.sleep(1);#休眠一秒#tools方法就是func方法的装饰器def tool(): def inner():#利用了高阶函数 #开始的时间 starttime=time.time(); func();#调用函数执行上面的方法 #结束的时间 endtime=time.time(); print('用时:%s秒'%(endtime-starttime)); return inner;inner=tool();inner();
####################调用的方式混乱 以上策略不推荐
#接下来使用装饰器,这种在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator)。本质上,decorator就是一个返回函数的高阶函数。
def logger(flag): #装饰器 def tool(f):#f:func方法的方法名 def inner():#利用了高阶函数 #开始的时间 starttime=time.time(); f();#真正的执行方法,调用了func #结束的时间 endtime=time.time(); print('用时:%s秒'%(endtime-starttime)); if flag=='true': print('你传入了TRUE变量') return inner;#内层方法的函数名 return tool;#主方法。想要给修饰器传参,在修饰器外重新生成修饰器@logger('true')def func(): print('我是func函数'); time.sleep(1);#休眠一秒func();
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。