博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python用类实现装饰器
阅读量:5331 次
发布时间:2019-06-14

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

一、代码

#利用__call__方法,装饰器的执行流程:当添加装饰器语法糖时,会把语法糖的变量名加()执行,并将被装饰的函数名传入。所以当类加()执行时,执行了__init__,产生的对象就是被装饰的函数,而对象()执行时触发__call__,call方法下就能添加一些新的功能了import timeclass Timeit:    def __init__(self,func):        self.func=func    def __call__(self, *args, **kwargs):        start_time=time.time()        self.func(*args,**kwargs)        print('run time is %s'%(time.time()-start_time))@Timeitdef func():    time.sleep(3)    return if __name__ == '__main__':    func()

 

转载于:https://www.cnblogs.com/angelyan/p/11346458.html

你可能感兴趣的文章
fat32转ntfs ,Win7系统提示对于目标文件系统文件过大解决教程
查看>>
Awesome Adb——一份超全超详细的 ADB 用法大全
查看>>
shell cat 合并文件,合并数据库sql文件
查看>>
Android 将drawable下的图片转换成bitmap、Drawable
查看>>
介绍Win7 win8 上Java环境的配置
查看>>
Linux设置环境变量的方法
查看>>
构建自己的项目管理方案
查看>>
利用pca分析fmri的生理噪声
查看>>
div水平居中且垂直居中
查看>>
epoll使用具体解释(精髓)
查看>>
AndroidArchitecture
查看>>
安装Endnote X6,但Word插件显示的总是Endnote Web"解决办法
查看>>
python全栈 计算机硬件管理 —— 硬件
查看>>
大数据学习
查看>>
简单工厂模式
查看>>
Delphi7编译的程序自动中Win32.Induc.a病毒的解决办法
查看>>
Objective-C 【关于导入类(@class 和 #import的区别)】
查看>>
倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-点击运行按钮进入到运行状态报错Error starting TwinCAT System怎么办 AdsWarning1823怎么办...
查看>>
【转】javascript 中的很多有用的东西
查看>>
Android 监听返回键、HOME键
查看>>