python:装饰器
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">装饰器函数 装饰器的作用
#不想修改函数的调用方式,但是还想在原来的函数前后添加功能
#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) ret = func() <span style="color: #008000">#<span style="color: #008000">inner() 装饰带参数函数的装饰器 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">' (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |