python decorator模块_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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值