加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python:装饰器

发布时间:2020-12-17 00:00:37 所属栏目:Python 来源:网络整理
导读:1,time模块 (time.sleep()) ( ) 获取当前时间 一个函数的执行时间: = ( 0.01 = (end- ?装饰器 span style="color: #0000ff"def span style="color: #000000" func(): time.sleep( 0.01span style="color: #000000") span style="color: #0000ff"print (spa

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">'

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读