python decorator模式


from time import time class 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

posted @ 2017-09-12 10:36  百变小超  阅读(193)  评论(0编辑  收藏  举报