重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这里定义了一个func函数,打印‘我是func函数’
创新互联主营和田网站建设的网络公司,主营网站建设方案,app软件开发公司,和田h5小程序设计搭建,和田网站营销推广欢迎和田等地区企业咨询
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();