这里定义了一个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();
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。