Python装饰器函数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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();
以上是关于Python装饰器函数的主要内容,如果未能解决你的问题,请参考以下文章