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

网站专题页ps教程个人开发游戏

网站专题页ps教程,个人开发游戏,辽宁建设工程信息网评标系统,网站为什么功能需求1 python函数装饰器参数统计调用时间和次数 python在函数装饰器外层定义一个函数生成封闭作用域来保存装饰器入参#xff0c;供装饰器使用。 1.1 装饰器统计调用时间和次数 描述 通过类的可调用实例装饰器来统计函数每次调用时间和总调用时间#xff0c;以及调用次数。 …1 python函数装饰器参数统计调用时间和次数 python在函数装饰器外层定义一个函数生成封闭作用域来保存装饰器入参供装饰器使用。 1.1 装饰器统计调用时间和次数 描述 通过类的可调用实例装饰器来统计函数每次调用时间和总调用时间以及调用次数。 1 time.perf_counter()获取当前时间单位秒 2 调用函数func前和后的时间差为func的执行时间usetime 3 将每次的执行时间usetime累加获得总时间alltime 4 每调用一次funccalls计增一次获得总次数 5 比较列表解析和map内置函数生成列表的调用时间 6 map在py2返回列表在py3返回迭代器需用list转为列表 示例 import time,sysclass TimeCount:def __init__(self,func):self.funcfuncself.alltime0self.calls0def __call__(self,*args,**kargs):begintime.perf_counter()resself.func(*args,**kargs)usetimetime.perf_counter()-beginself.alltimeusetimeself.calls1callstr 调用 {0[0]} {0[1]} 次 calltplself.func.__name__,self.callstimestr{0[0]}:usetime{0[1]:.6f},alltime{0[2]:.6f}timetplself.func.__name__,usetime,self.alltimeresstrres[0]{0[0]},res[-1]{0[1]},len(res){0[2]}restplres[0],res[-1],len(res)print(callstr.format(calltpl).center(50,-))print(timestr.format(timetpl))print(resstr.format(restpl),\n) TimeCount def listcomp(N):return [x*2 for x in range(N)] if sys.version_info[0]2:TimeCountdef mapcall(N):return map((lambda x:x*2),range(N)) else:TimeCountdef mapcall(N):# py3的map返回迭代器需用list转换# 否则统计的时间与listcomp不一致return list(map((lambda x:x*2),range(N))) xtpl5,50000,500000,1000000tuple(map(listcomp,xtpl)) ---------------- 调用 listcomp 1 次 ----------------- listcomp:usetime0.000005,alltime0.000005 res[0]0,res[-1]8,len(res)5 ---------------- 调用 listcomp 2 次 ----------------- listcomp:usetime0.002395,alltime0.002400 res[0]0,res[-1]99998,len(res)50000 ---------------- 调用 listcomp 3 次 ----------------- listcomp:usetime0.026660,alltime0.029060 res[0]0,res[-1]999998,len(res)500000 ---------------- 调用 listcomp 4 次 ----------------- listcomp:usetime0.053023,alltime0.082084 res[0]0,res[-1]1999998,len(res)1000000 (None, None, None, None)tuple(map(mapcall,xtpl)) ----------------- 调用 mapcall 1 次 ----------------- mapcall:usetime0.000005,alltime0.000005 res[0]0,res[-1]8,len(res)5 ----------------- 调用 mapcall 2 次 ----------------- mapcall:usetime0.003963,alltime0.003968 res[0]0,res[-1]99998,len(res)50000 ----------------- 调用 mapcall 3 次 ----------------- mapcall:usetime0.041263,alltime0.045231 res[0]0,res[-1]999998,len(res)500000 ----------------- 调用 mapcall 4 次 ----------------- mapcall:usetime0.083637,alltime0.128868 res[0]0,res[-1]1999998,len(res)1000000 (None, None, None, None){:.6f}.format(mapcall.alltime) 0.128868{:.6f}.format(listcomp.alltime) 0.082084{:.6f}.format(mapcall.alltime/listcomp.alltime) 1.5699571.2 嵌套函数统计电影时间和次数 描述 通过嵌套函数来统计函数每次调用时间和总调用时间以及调用次数。 1 time.perf_counter()获取当前时间单位秒 2 调用函数func前和后的时间差为func的执行时间usetime 3 将每次的执行时间usetime累加获得总时间alltime 4 每调用一次funccalls计增一次获得总次数 5 比较列表解析和map内置函数生成列表的调用时间 6 map在py2返回列表在py3返回迭代器需用list转为列表 7 将alltime和calls赋值给func进行返回供后续获取 8 通过nonlocal修改嵌套作用域的变量alltime和calls 示例 import time,sysdef timecount_func(func):alltime0calls0def tcf_wrapper(*pargs,**kargs):begin time.perf_counter()resfunc(*pargs,**kargs)usetime time.perf_counter() - beginnonlocal alltimenonlocal callsalltimeusetimecalls1timestr{0[0]}:usetime{0[1]:.6f},alltime{0[2]:.6f}timetplfunc.__name__,usetime,alltimecallstr 调用 {0[0]} {0[1]} 次 calltplfunc.__name__,callsresstrres[0]{0[0]},res[-1]{0[1]},len(res){0[2]}restplres[0],res[-1],len(res)print(callstr.format(calltpl).center(50,-))print(timestr.format(timetpl))print(resstr.format(restpl),\n)func.alltimealltimefunc.callscallsreturn tcf_wrapper def listcomp(N):return [x*2 for x in range(N)] if sys.version_info[0]2:def mapcall(N):return map((lambda x:x*2),range(N)) else:def mapcall(N):return list(map((lambda x:x*2),range(N))) xtpl5,50000,500000,1000000tuple(map(timecount_func(listcomp),xtpl)) ---------------- 调用 listcomp 1 次 ----------------- listcomp:usetime0.000005,alltime0.000005 res[0]0,res[-1]8,len(res)5 ---------------- 调用 listcomp 2 次 ----------------- listcomp:usetime0.002478,alltime0.002482 res[0]0,res[-1]99998,len(res)50000 ---------------- 调用 listcomp 3 次 ----------------- listcomp:usetime0.031966,alltime0.034448 res[0]0,res[-1]999998,len(res)500000 ---------------- 调用 listcomp 4 次 ----------------- listcomp:usetime0.068800,alltime0.103248 res[0]0,res[-1]1999998,len(res)1000000 (None, None, None, None)tuple(map(timecount_func(mapcall),xtpl)) ----------------- 调用 mapcall 1 次 ----------------- mapcall:usetime0.000006,alltime0.000006 res[0]0,res[-1]8,len(res)5 ----------------- 调用 mapcall 2 次 ----------------- mapcall:usetime0.004435,alltime0.004441 res[0]0,res[-1]99998,len(res)50000 ----------------- 调用 mapcall 3 次 ----------------- mapcall:usetime0.041257,alltime0.045698 res[0]0,res[-1]999998,len(res)500000 ----------------- 调用 mapcall 4 次 ----------------- mapcall:usetime0.082711,alltime0.128409 res[0]0,res[-1]1999998,len(res)1000000 (None, None, None, None){:.6f}.format(mapcall.alltime) 0.128409{:.6f}.format(listcomp.alltime) 0.103248{:.6f}.format(mapcall.alltime/listcomp.alltime) 1.2436931.3 函数装饰器参数 通过装饰器参数指定配置选项。在装饰的时候传入一个标签和一个跟踪控制标志。 提供一个输出标签以及打开或关闭跟踪消息 用法 def close_scope_func(label,traceTrue):def decorator(func):def onCall(*args):passfunc(*args)passreturn decoratorclose_scope_func(梯阅线条) def test_func(x):passtest_func(tyxt)描述 装饰器参数需在外层添加一个函数生成一个封闭作用域用来保存参数供装饰器使用。 1 在装饰器外层定义一个函数并且指定装饰器需要的入参 2 外层函数需返回一个可调用的装饰器给到被装饰函数 3 装饰函数时传入对应入参即可 示例 import time,sysdef timecount_ctr(label,traceTrue):class TimeCount:def __init__(self,func):self.funcfuncself.alltime0self.calls0def __call__(self,*args,**kargs):begintime.perf_counter()resself.func(*args,**kargs)usetimetime.perf_counter()-beginself.alltimeusetimeself.calls1if trace:callstr 调用 {0[0]} {0[1]} 次 callvalself.func.__name__,self.callstimestr{0[0]}:usetime{0[1]:.6f},alltime{0[2]:.6f}timevalself.func.__name__,usetime,self.alltimeresstrres[0]{0[0]},res[-1]{0[1]},len(res){0[2]}resvalres[0],res[-1],len(res)print(label,callstr.format(callval).center(50,-))print(label,timestr.format(timeval))print(label,resstr.format(resval),\n)return TimeCount timecount_ctr([listcomp]) def listcomp(N):return [x*2 for x in range(N)] if sys.version_info[0]2:timecount_ctr([mapcall])def mapcall(N):return map((lambda x:x*2),range(N)) else:timecount_ctr([mapcall])def mapcall(N):# py3的map返回迭代器需用list转换# 否则统计的时间与listcomp不一致return list(map((lambda x:x*2),range(N))) xtpl5,50000,500000,1000000tuple(map(listcomp,xtpl)) [listcomp] ---------------- 调用 listcomp 1 次 ----------------- [listcomp] listcomp:usetime0.000005,alltime0.000005 [listcomp] res[0]0,res[-1]8,len(res)5 [listcomp] ---------------- 调用 listcomp 2 次 ----------------- [listcomp] listcomp:usetime0.002641,alltime0.002646 [listcomp] res[0]0,res[-1]99998,len(res)50000 [listcomp] ---------------- 调用 listcomp 3 次 ----------------- [listcomp] listcomp:usetime0.027689,alltime0.030335 [listcomp] res[0]0,res[-1]999998,len(res)500000 [listcomp] ---------------- 调用 listcomp 4 次 ----------------- [listcomp] listcomp:usetime0.052438,alltime0.082773 [listcomp] res[0]0,res[-1]1999998,len(res)1000000 (None, None, None, None)tuple(map(mapcall,xtpl)) [mapcall] ----------------- 调用 mapcall 1 次 ----------------- [mapcall] mapcall:usetime0.000004,alltime0.000004 [mapcall] res[0]0,res[-1]8,len(res)5 [mapcall] ----------------- 调用 mapcall 2 次 ----------------- [mapcall] mapcall:usetime0.003975,alltime0.003979 [mapcall] res[0]0,res[-1]99998,len(res)50000 [mapcall] ----------------- 调用 mapcall 3 次 ----------------- [mapcall] mapcall:usetime0.040665,alltime0.044644 [mapcall] res[0]0,res[-1]999998,len(res)500000 [mapcall] ----------------- 调用 mapcall 4 次 ----------------- [mapcall] mapcall:usetime0.098298,alltime0.142942 [mapcall] res[0]0,res[-1]1999998,len(res)1000000 (None, None, None, None){:.6f}.format(mapcall.alltime) 0.142942{:.6f}.format(listcomp.alltime) 0.082773{:.6f}.format(mapcall.alltime/listcomp.alltime) 1.726914
http://www.w-s-a.com/news/107935/

相关文章:

  • 连山区网站建设seo简历
  • 自助建站系统官方版太仓高端网站制作
  • 怎样只做自己的网站建设银行唐山分行网站
  • 咸阳鑫承网站建设软件开发公司网站模板
  • 百度怎么免费做网站网站建设大作业有代码
  • 小说素材网站设计素材网站特点
  • 如何建设一个好的网站WordPress主题设置数据库
  • 网站被模仿十堰网站制作公司
  • 怎么样做免费网站个人网站备案幕布
  • 做ppt的动图下载哪些网站制作一个网站需要多少时间
  • 公司网站开发制作备案中的网站
  • 怎么看网站的收录网站开发先前台和后台
  • 合肥市做网站多少钱wordpress网站布置视频
  • 中国建设人才网信息网站软件外包公司好不好
  • 网站建设与管理 市场分析上海网站建设公司排名
  • 怎么将公司网站设成首页网址关键词查询网站
  • 怎么用ps做网站ui邱县专业做网站
  • 国开行网站毕业申请怎么做大连旅顺口旅游攻略
  • 鲜花店网站源码成都专做婚介网站的公司
  • 合肥企业网站建设工哈尔滨公告
  • 华强北 做网站互联网服务平台入口
  • vi设计案例网站微信导航网站 dedecms
  • 青浦区做网站设计图片手绘图片
  • 做网站的基本功制作网站公司推荐
  • 阿里云快速建站教程个人网站 费用
  • 广东购物网站建设微信公众号制作模板免费
  • 阿里国际站韩语网站怎么做让移动网站
  • 北京外包做网站如何报价中国几大网络推广公司
  • 中国建设部网站关于资质wordpress 建app
  • 程序员找工作的网站哈尔滨建设信息网站