12步轻松搞定python装饰器(Python3.5装饰器典型案例分析)
类别:脚本大全 浏览量:533
时间:2021-10-09 00:18:54 12步轻松搞定python装饰器
Python3.5装饰器典型案例分析本文实例讲述了python3.5装饰器。分享给大家供大家参考,具体如下:
|
#!/usr/bin/env python # -*- coding:utf-8 -*- # author:zhengzhengliu #高阶函数+嵌套函数==>装饰器 import time def timer(func): #timer(test1)-->func=test1 def decor(): start_time = time.time() func() #run test1 stop_time = time.time() print ( "the run time of func is %s" % (stop_time - start_time)) return decor @timer #test1 = timer(test1) def test1(): time.sleep( 3 ) print ( "in the test1" ) @timer #test2 = timer(test2) def test2(): time.sleep( 3 ) print ( "in the test2" ) print (timer(test1)) #打印deco的地址 #test1 = timer(test1) #test2 = timer(test2) test1() #-->执行decor test2() |
运行结果:
<function timer.<locals>.decor at 0x00b720c0>
in the test1
the run time of func is 3.000171661376953
in the test2
the run time of func is 3.000171661376953
1、装饰器修饰有参数函数
|
#高阶函数+嵌套函数==>装饰器 import time def timer(func): #timer(test1)-->func=test1 def decor(arg1,arg2): start_time = time.time() func(arg1,arg2) #run test2 stop_time = time.time() print ( "the run time of func is %s" % (stop_time - start_time)) return decor @timer #test2 = timer(test2) = decor test2(name)==>decor(name) def test2(name,age): print ( "test2:" ,name,age) test2( "liu" , 23 ) |
运行结果 :
test2: liu 23
the run time of func is 0.0
2、装饰器修饰多个函数,有的函数带参数,有的函数不带参数的情况(采用参数组)
|
#高阶函数+嵌套函数==>装饰器 import time def timer(func): #timer(test1)-->func=test1 def decor( * args, * * kwargs): start_time = time.time() func( * args, * * kwargs) #run test1 stop_time = time.time() print ( "the run time of func is %s" % (stop_time - start_time)) return decor @timer #test1 = timer(test1) def test1(): time.sleep( 3 ) print ( "in the test1" ) @timer #test2 = timer(test2) = decor test2(name)==>decor(name) def test2(name,age): time.sleep( 1 ) print ( "test2:" ,name,age) #test1 = timer(test1) #test2 = timer(test2) test1() #-->执行decor test2( "liu" , 23 ) |
运行结果:
in the test1
the run time of func is 3.0036065578460693
test2: liu 23
the run time of func is 1.0084023475646973
希望本文所述对大家python程序设计有所帮助。
原文链接:https://blog.csdn.net/loveliuzz/article/details/77878019
您可能感兴趣
- python基础教学之125 装饰器简介(python3 property装饰器实现原理与用法示例)
- python装饰器初学者教程(Python3.5装饰器原理及应用实例详解)
- python装饰器怎么编写(Python函数装饰器常见使用方法实例详解)
- python装饰器怎么设置(深入了解和应用Python 装饰器 @decorator)
- python 装饰器模式(python重试装饰器的简单实现方法)
- python装饰器使用说明(详解Python装饰器)
- 12步轻松搞定python装饰器(Python3.5装饰器典型案例分析)
- python装饰器语法与应用(python装饰器简介---这一篇也许就够了推荐)
- 八月再见 愿你岁月不扰,余生静好(八月再见愿你岁月不扰)
- 赏读 八月再见,九月你好(赏读八月再见九月你好)
- 散文 八月再见,九月,我在风中等你(散文八月再见九月)
- 8月再见 9月你好(8月再见)
- 魔兽世界 设计师爆料,原始版本并无PVP,跨阵营属于返璞归真(魔兽世界设计师爆料)
- 吐槽完《弧光大作战》之后,我们和设计师聊了聊魔兽首款手游的立项初衷和未来(吐槽完弧光大作战之后)
热门推荐
- python合并多个excel可以刷新吗(python 实现读取一个excel多个sheet表并合并的方法)
- mysql完整教程(MySql新手入门的基本操作汇总)
- thinkphp5怎么设置当前的模块(thinkPHP5.1框架中Request类四种调用方式示例)
- mysqltruncate(MYSQL中Truncate的用法详解)
- css中的float的使用
- docker离线安装步骤(Windows下Docker安装各种软件的详细过程)
- jquery 实现对联广告
- css在ie中怎么显示不正常(IE6和IE7中行内元素后的浮动元素被折行的问题解决)
- python与mysql的联系(MySQL和Python交互的示例)
- python取当前日期(Python实现根据日期获取当天凌晨时间戳的方法示例)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8