1,time模块
(time.sleep())
()
获取当前时间
一个函数的执行时间:
=(0.01=(end-
装饰器
<span style=”color: #0000ff”>def<span style=”color: #000000″> func():
time.sleep(0.01<span style=”color: #000000″>)
<span style=”color: #0000ff”>print(<span style=”color: #800000″>'<span style=”color: #800000″>老板好<span style=”color: #800000″>'<span style=”color: #000000″>)
<span style=”color: #0000ff”>def timmer(f):<span style=”color: #008000″>#<span style=”color: #008000″>装饰器函数
<span style=”color: #0000ff”>def<span style=”color: #000000″> inner():
start=<span style=”color: #000000″>time.time()
f()<span style=”color: #008000″>#<span style=”color: #008000″>被装饰的函数
end =<span style=”color: #000000″>time.time()
<span style=”color: #0000ff”>print(end-<span style=”color: #000000″>start)
<span style=”color: #0000ff”>return<span style=”color: #000000″> inner
func =<span style=”color: #000000″>timmer(func)
func()
装饰器的作用
#不想修改函数的调用方式,但是还想在原来的函数前后添加功能
#timmer就是一个装饰器函数,只是对一个函数有一些装饰作用。
开放封闭原则
#开放:对拓展是开放的
#封闭:对修改是封闭的
语法糖
(time.time())
time.sleep(10)
<span style=”color: #0000ff”>def timmer(f): <span style=”color: #008000″>#<span style=”color: #008000″>装饰器函数
<span style=”color: #0000ff”>def<span style=”color: #000000″> inner():
start =<span style=”color: #000000″> time.time()
ret = f() <span style=”color: #008000″>#<span style=”color: #008000″>被装饰的函数
end =<span style=”color: #000000″> time.time()
<span style=”color: #0000ff”>print(end -<span style=”color: #000000″> start)
<span style=”color: #0000ff”>return<span style=”color: #000000″> ret
<span style=”color: #0000ff”>return<span style=”color: #000000″> inner
@timmer <span style=”color: #008000″>#<span style=”color: #008000″>语法糖 @装饰器函数名# func = timmer(func)
<span style=”color: #0000ff”>def func(): <span style=”color: #008000″>#<span style=”color: #008000″>被装饰的函数
time.sleep(0.01<span style=”color: #000000″>)
<span style=”color: #0000ff”>print(<span style=”color: #800000″>'<span style=”color: #800000″>老板好同事好大家好<span style=”color: #800000″>'<span style=”color: #000000″>)
<span style=”color: #0000ff”>return <span style=”color: #800000″>'<span style=”color: #800000″>新年好<span style=”color: #800000″>'<span style=”color: #000000″>
ret = func() <span style=”color: #008000″>#<span style=”color: #008000″>inner()
<span style=”color: #0000ff”>print(ret)
装饰带参数函数的装饰器
timmer(f):
inner(*args,**== f(*args,**kwargs)
end =(end -@timmer <span style=”color: #008000″>#<span style=”color: #008000″>语法糖 @装饰器函数名
<span style=”color: #0000ff”>def func(a,b): <span style=”color: #008000″>#<span style=”color: #008000″>被装饰的函数
time.sleep(0.01<span style=”color: #000000″>)
<span style=”color: #0000ff”>print(<span style=”color: #800000″>'<span style=”color: #800000″>老板好同事好大家好<span style=”color: #800000″>'<span style=”color: #000000″>,a,b)
<span style=”color: #0000ff”>return <span style=”color: #800000″>'<span style=”color: #800000″>新年好<span style=”color: #800000″>'<span style=”color: #000000″>
ret = func(1) <span style=”color: #008000″>#<span style=”color: #008000″>inner()
<span style=”color: #0000ff”>print(ret)
装饰器函数格式:
wrapper(f):
inner(*args,**= f(*args,**kwargs)
@wrapper <span style=”color: #008000″>#<span style=”color: #008000″>语法糖 @装饰器函数名
<span style=”color: #0000ff”>def func(a,b)
<span style=”color: #0000ff”>return <span style=”color: #800000″>'<span style=”color: #800000″>新年好<span style=”color: #800000″>’