博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python decorator模式
阅读量:5354 次
发布时间:2019-06-15

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

from time import timeclass P:  @staticmethod    def timing(func):   # 这里的func 代指真正调用的函数对象,        def _decorator(obj): #obj 代指 上述函数对象携带的参数,其实代指 原函数中的self实例            print obj  # 查看调用对象示例            print("begin download %s of region: %s" % (obj.name, obj.region)) # 给出提示信息            time0 = time()  # 开始计时            func(self)  #真正执行            print("finish download %s of region: %s. Time cost : %.2f" % (obj.name, obj.region, (time() - time0)))        return _decorator    class Son(P):    @P.timing    def download(self):        ......s = Son()s.download() #会计时的  

程序实现简单的为方法计时的 decorator 方式,并且是类对象内部的实现。在网上通常看到的是方法外面的实现。

参考 http://www.wklken.me/posts/2012/10/27/python-base-decorator.html#nei-zhi-zhuang-shi-qi

    http://www.cnblogs.com/Jerry-Chou/archive/2012/05/23/python-decorator-explain.html

转载于:https://www.cnblogs.com/dasheng-maritime/p/7508832.html

你可能感兴趣的文章
大话https演化过程(对称加密、非对称加密、公钥、私钥、数字签名、数字证书)...
查看>>
Spark Streaming 调优指南
查看>>
“食物相克”大多是忽悠
查看>>
虽丑尤萌 世界最丑狗狗大赛在美举行
查看>>
自我介绍
查看>>
Spark DataFrame
查看>>
Linux路由器资料
查看>>
iOS 常用第三方类库、完整APP示例
查看>>
Myeclipse在debug模式下没加断点程序卡住,start模式下可以正常启动
查看>>
网络里的抽象概念
查看>>
Jenkins 关闭和重启实现方式
查看>>
ocilib多线程支持
查看>>
编写多个数字相加的java程序
查看>>
A*与IDA*
查看>>
C#创建快捷方式与添加网页到收藏夹
查看>>
Centos6下给PHP安装Qconf扩展
查看>>
给笔记本更换SSD硬盘
查看>>
jQuery 工具类函数-检测浏览器是否属于W3C盒子模型
查看>>
远程调用之RMI、Hessian、Burlap、Httpinvoker、WebService的比较
查看>>
yarn依赖管理工具的使用
查看>>