python装饰器

定义:装饰器就是函数。

装饰器的用途:

  1. 引入日志。
  2. 增加计数逻辑来检测性能。
  3. 给函数加入事物能力。

装饰器的基本原则组成:(函数+高阶函数+嵌套函数+语法糖=装饰器)

什么是语法糖?

答:指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。

什么是嵌套函数:

答:嵌套函数是在函数内部定义一个函数,而不是调用。

来看代码!!!

#函数的运行时间
#定义一个装饰器
import time
def timer(func):
    def dec():
        start_time = time.time()
        func()
        end_time = time.time()
        print("the func run time is %s"%(end_time-start_time))
    return dec

@timer
def time1():
    time.sleep(3)
    print('it is time1')
@timer
def time2():
    time.sleep(3)
    print('it is time2')

#调用time1
test1 = timer(time)
test1() 
#但是这种方法太low了我们有装饰器为啥不用呢
#给两个函数上面加上装饰器
#然后就可以直接这样调用了:
time1()

这是一个最简单的装饰器

但是我们的函数要是有参数时候该怎么搞呢?我么在修改装饰器吧。

import time
def tiemr(func):
    def dec(*args,**kwargs):
        start_time = time.time()
        func(*args,**kwargs)
        end_time =time.time()
        print("the func run time is %s"%(end_time-start_time))
    return dec

这样就基本解决了传入参数的问题。先就这么多等深一步了解以后在进行改进

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值