Python3.5装饰器典型案例分析
本文实例讲述了Python3.5装饰器。分享给大家供大家参考,具体如下:
#!/usr/bin/envpython #-*-coding:utf-8-*- #Author:ZhengzhengLiu #高阶函数+嵌套函数==>装饰器 importtime deftimer(func):#timer(test1)-->func=test1 defdecor(): start_time=time.time() func()#runtest1 stop_time=time.time() print("theruntimeoffuncis%s"%(stop_time-start_time)) returndecor @timer#test1=timer(test1) deftest1(): time.sleep(3) print("inthetest1") @timer#test2=timer(test2) deftest2(): time.sleep(3) print("inthetest2") print(timer(test1))#打印deco的地址 #test1=timer(test1) #test2=timer(test2) test1()#-->执行decor test2()
运行结果:
.decorat0x00B720C0>
inthetest1
theruntimeoffuncis3.000171661376953
inthetest2
theruntimeoffuncis3.000171661376953
1、装饰器修饰有参数函数
#高阶函数+嵌套函数==>装饰器 importtime deftimer(func):#timer(test1)-->func=test1 defdecor(arg1,arg2): start_time=time.time() func(arg1,arg2)#runtest2 stop_time=time.time() print("theruntimeoffuncis%s"%(stop_time-start_time)) returndecor @timer#test2=timer(test2)=decortest2(name)==>decor(name) deftest2(name,age): print("test2:",name,age) test2("liu",23)
运行结果:
test2:liu23
theruntimeoffuncis0.0
2、装饰器修饰多个函数,有的函数带参数,有的函数不带参数的情况(采用参数组)
#高阶函数+嵌套函数==>装饰器 importtime deftimer(func):#timer(test1)-->func=test1 defdecor(*args,**kwargs): start_time=time.time() func(*args,**kwargs)#runtest1 stop_time=time.time() print("theruntimeoffuncis%s"%(stop_time-start_time)) returndecor @timer#test1=timer(test1) deftest1(): time.sleep(3) print("inthetest1") @timer#test2=timer(test2)=decortest2(name)==>decor(name) deftest2(name,age): time.sleep(1) print("test2:",name,age) #test1=timer(test1) #test2=timer(test2) test1()#-->执行decor test2("liu",23)
运行结果:
inthetest1
theruntimeoffuncis3.0036065578460693
test2:liu23
theruntimeoffuncis1.0084023475646973
更多关于Python相关内容可查看本站专题:《Python数据结构与算法教程》、《PythonSocket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。