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装饰器怎么编写(Python函数装饰器常见使用方法实例详解)
- 12步轻松搞定python装饰器(Python3.5装饰器典型案例分析)
- python基础教学之125 装饰器简介(python3 property装饰器实现原理与用法示例)
- python装饰器初学者教程(Python3.5装饰器原理及应用实例详解)
- python装饰器使用说明(详解Python装饰器)
- python装饰器语法与应用(python装饰器简介---这一篇也许就够了推荐)
- python 装饰器模式(python重试装饰器的简单实现方法)
- python装饰器怎么设置(深入了解和应用Python 装饰器 @decorator)
- 车友的选择| 轮毂该如何选(车友的选择轮毂该如何选)
- 秦海璐炫耀和王新军热恋蜜事,不料对方吐槽她吃饱后肚子撅老高(秦海璐炫耀和王新军热恋蜜事)
- 秦海璐一袭旗袍惹人倾心,将高级与淡雅展现的游刃有余(秦海璐一袭旗袍惹人倾心)
- 门外之见 海蛎子味 的表演,能走多远(门外之见海蛎子味)
- 三部冷门谍战剧,第一部2014年拍摄,至今还未播出(三部冷门谍战剧)
- 《金陵秘事》的剧情跌宕起伏 给观众带来的怎样的感官体验(金陵秘事的剧情跌宕起伏)
热门推荐
- php字符串长度怎么获取(PHP实现给定一列字符,生成指定长度的所有可能组合示例)
- html5实时通讯(使用Html5 Stream开发实时监控系统)
- uni-app搜索框源代码(如何用uni-app实现顶部导航栏显示按钮和搜索框)
- centos7可以装mysql吗(详解腾讯云CentOS7.0使用yum安装mysql及使用遇到的问题)
- dede搜索模板代码(DEDE调用指定文章ID来调用特定文档)
- SQL Server中使用order by charindex按指定顺序排序
- nginx怎么实现反向代理(nginx反向代理时如何保持长连接)
- mysqlmha架构图(MySQL之MHA高可用配置及故障切换实现详细部署步骤)
- mysql删除的delete怎么找回(MySQL Delete 删数据后磁盘空间未释放的原因)
- sqlserver替换脚本(SQL Server中对数据截取替换的方法详解)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8