博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python装饰器(1)
阅读量:5307 次
发布时间:2019-06-14

本文共 818 字,大约阅读时间需要 2 分钟。

装饰器本质是函数,用于装饰其他函数(就是为其他函数添加附加功能)

原则1:不能修改被装饰函数的源代码
原则2:不能修改被装饰函数的调用方式

################################################## #实现装饰器知识储备: #1.函数即“变量” #2.高阶函数(把一个函数名当作实参传递给另一个函数(在不修改被装饰函数源代码的情况下为其添加功能)或 返回之中包含函数名(不修改函数的调用方式)) #3.嵌套函数 # 高阶函数+嵌套函数 ==> 实现装饰器效果
################################################################ 以下代码中,timmer函数装饰test3函数,为test3函数添加统计运行时间功能
1 __author__ = "csy" 2 import time 3  4 def timmer(func): 5     def warpper(*args,**kwargs):     #  *args,**kwargs 表示非固定参数。被装饰函数有0或多个参数,用非固定参数可适用于多种被装饰函 6         start_time=time.time() 7         func() 8         stop_time=time.time() 9         print('the func run time is %s' %(stop_time-start_time))10     return warpper11 12 @timmer13 def test3():14     time.sleep(3)15     print('in test3')16 17 test3()

 

 
 

转载于:https://www.cnblogs.com/csy113/p/7466883.html

你可能感兴趣的文章
全面分析Java的垃圾回收机制2
查看>>
[Code Festival 2017 qual A] C: Palindromic Matrix
查看>>
修改博客园css样式
查看>>
Python3 高阶函数
查看>>
初始面向对象
查看>>
docker一键安装
查看>>
leetcode Letter Combinations of a Phone Number
查看>>
Unity 5.4 测试版本新特性---因吹丝停
查看>>
7.5 文件操作
查看>>
DFS-hdu-2821-Pusher
查看>>
MyEclipse中将普通Java项目convert(转化)为Maven项目
查看>>
node js 安装.node-gyp/8.9.4 权限 无法访问
查看>>
windows基本命令
查看>>
VMware中CentOS设置静态IP
查看>>
[poj1006]Biorhythms
查看>>
jsp
查看>>
Hyper-V虚拟机上安装一个图形界面的Linux系统
查看>>
Hover功能
查看>>
js千分位处理
查看>>
Mac---------三指拖移
查看>>