python基础笔记——装饰器(举例)

装饰器

1、为原函数增加功能,但是不能修改原函数。
2、不能修改原函数调用方式。

1、
import time
 def timmer(func):
     def Warp(*args,**kwargs):
         Start_time=time.time()
         func()
         Stop_time=time.time()
         print("the func runtime: %s" %
               (Stop_time-Start_time))
     return Warp

 @timmer   #语法糖 test=timmer(test)
 def test():
     time.sleep(3)
     print("in the test")

 test()
运行结果:in the test
         the func runtime: 3.1024303436279297
为原函数增加一个方法timmer()


 2、
 import time
 def bar():
     time.sleep(3)
     print("in the bar")

 def test(func):
     Start_time=time.time()
     func()
     Stop_time=time.time()
     print(Stop_time-Start_time)
     return func

 bar=test(bar)   #return bar
运行结果:in the bar
         3.0000507831573486



3、
import time
def timmer(func):
    def foo():
        Start_time=time.time()
        func()
        Stop_time=time.time()
        print(Stop_time-Start_time)
    return foo
@timmer    #test=timmer(test)=foo   上面为新加的函数功能
def test():
    time.sleep(3)
    print("in the test")
test=timmer(test)
test()   #foo()
运行结果:in the test
         3.000030517578125
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值