当前位置: 首页 > news >正文

网站建设投标邀请函有像考试佳园一样做资料的网站吗

网站建设投标邀请函,有像考试佳园一样做资料的网站吗,wordpress4.3.1,wordpress模版主题为什么用装饰器? 第一个原因是,使用装饰器可以提升代码复用,避免重复冗余代码。如果我有多个函数需要测量执行时间,我可以直接将装饰器应用在这些函数上,而不是给多个函数加上一样的代码。这样的代码既元余也不方便后…

为什么用装饰器?

  • 第一个原因是,使用装饰器可以提升代码复用,避免重复冗余代码。如果我有多个函数需要测量执行时间,我可以直接将装饰器应用在这些函数上,而不是给多个函数加上一样的代码。这样的代码既元余也不方便后面维护
  • 第二个原因是,使用装饰器可以保证函数的逻辑清晰。如果一个本身功能就很复杂的函数,我还要通过修改内部代码来测量运行时间,这样会模糊函数自身的主逻辑。同时,软件开发的一个原则就是单一职责,也就是说,一个函数只应该承担一项责任
  • 第三,通过装饰器,我们可以扩展别人的函数。想象我们正在使用一个第三方库的函数,但我要添加额外的行为,比如测量运行时间,那我就可以用装饰器去包装,而不是跑到库里面去修改。
import time
import math#函数接收的参数为函数
def mysqrt(x):return math.sqrt(x)def print_running(f,x):print(f'{f.__name__} is running')return f(x)result= print_running(mysqrt,9)
print(result)

mysqrt is running
3.0

#基本的装饰器例子import time
def myDecorator(func):def warpper(*args,**kwargs):start_time=time.time()result=func(*args,**kwargs)end_time=time.time()print(f'{func.__name__} running time :{end_time-start_time}')return resultreturn warpperdec_mysqrt=myDecorator(mysqrt)
result=dec_mysqrt(9)
print(result)#使用@语法完成函数名字上面代码段的dec_mysqrt=myDecorator(mysqrt)替换
@myDecorator#函数接收的参数为函数
def mysqrt(x):return math.sqrt(x)x=mysqrt(10)
print(x)

mysqrt running time :0.0
3.0

#装饰器生成器:比如要要测量某函数运行时间是否超过阈值,但不同函数的阈值是不一样的,所以需要定义多个装饰器应对不同阈值吗?不,只需要用装饰器生成器
def timer(threshold):def decorator(func):def warpper(*args,**kwargs):start_time=time.time()result=func(*args,**kwargs)end_time=time.time()if (end_time-start_time>threshold):print(f'{func.__name__} running time is over {threshold} seconds')return resultreturn warpperreturn decorator@timer(0.2)
def sleep_04():time.sleep(0.4)# #上述写法的等价写法
# def sleep_04():
#     time.sleep(0.4)
# sleep_04 =timer(0.2)(sleep_04)sleep_04()
print(sleep_04.__name__)

sleep_04 running time is over 0.2 seconds
warpper

#但是上面的代码的sleep_04.__name__是warpper,不是sleep_04。
#能继承函数名字等参数的装饰器生成器import functools
def timer(threshold):def decorator(func):@functools.wraps(func)def wrapper(*args,**kwargs):start_time=time.time()result=func(*args,**kwargs)end_time=time.time()if (end_time-start_time>threshold):print(f'{func.__name__} running time is over {threshold} seconds')return resultreturn wrapperreturn decorator@timer(0.2)
def sleep_04():time.sleep(0.4)
# #上述写法的等价写法
# def sleep_04():
#     time.sleep(0.4)
# sleep_04 =timer(0.2)(sleep_04)sleep_04()
print(sleep_04.__name__)

sleep_04 running time is over 0.2 seconds
sleep_04

http://www.yayakq.cn/news/499130/

相关文章:

  • 沧州网站建设的技术方案如何申请域名做网站
  • 泗阳城乡建设局网站网页与网站设计说明
  • 网站建设纪念币发售北京网站制作公司清远
  • 中山网站建设价位领导视察网站建设
  • 自己ip做网站网络游戏加盟合作
  • 怎么自己制作一个好的网站全国高校校园网站建设与发展高级研修班
  • 100款免费软件网站大全wordpress慕课网
  • 如何设计网站中的上传功能杭州做兼职网站
  • 做资料分享网站暑假适合带孩子去哪里旅游
  • 做企业网站需要资质吗免费的网页模板网站
  • 企业是如何做电子商务网站成都网站建设公司兴田德润在哪儿
  • 网站建设有哪些分工分国内网站速度慢
  • 网站开发结束语如何创建一个简单的网页
  • 付费抽奖网站怎么做一学一做演讲视频网站
  • 做打折的淘宝小卖家的网站怎么做像滴滴一样网站
  • 明星网站怎么设计社交网站建设内容
  • 石家庄站布局图深圳网站建设做一个公司网站要多少钱
  • 学校网站建设具体分工wordpress分类自定义文字
  • 十大货源网站大全河南省建设厅门户网站
  • 上海网站建设友汇网站网络机房建设公司
  • 大庆市城乡建设局网站网页设计在邯郸能干什么
  • 企业网站建设公司名称宁波网络推广平台推荐
  • 北京视频网站建设Wordpress的高级版
  • 淮安网站制作设计一个公司的官网怎么做
  • 淘宝上做网站 源代码怎么给你网站搭建免费模板
  • 分析网易严选网站开发wordpress如何清缓存
  • 舟山工程建设信息网站网站流量站怎么做的
  • 哪个网站网页做的好看网站文章内链
  • 合肥网站建设哪家好价格wordpress 改系统
  • 潜江建设网站网站的专业