定义:装饰器就是函数。
装饰器的用途:
- 引入日志。
- 增加计数逻辑来检测性能。
- 给函数加入事物能力。
装饰器的基本原则组成:(函数+高阶函数+嵌套函数+语法糖=装饰器)
什么是语法糖?
答:指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。
什么是嵌套函数:
答:嵌套函数是在函数内部定义一个函数,而不是调用。
来看代码!!!
#函数的运行时间
#定义一个装饰器
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
这样就基本解决了传入参数的问题。先就这么多等深一步了解以后在进行改进