python:装饰器进阶
1、wraps functools wrapper(func):
@wraps(func)
inner(*args,**(= func(*args,**(@wrapper <span style="color: #008000">#<span style="color: #008000">holiday = wrapper(holiday)
<span style="color: #0000ff">def<span style="color: #000000"> holiday(day): <span style="color: #800000">'''<span style="color: #800000">这是一个放假通知<span style="color: #800000">''' <span style="color: #0000ff">print(<span style="color: #800000">'<span style="color: #800000">全体放假%s天<span style="color: #800000">'%<span style="color: #000000">day) <span style="color: #0000ff">return <span style="color: #800000">'<span style="color: #800000">好开心<span style="color: #800000">' <span style="color: #0000ff">print (holiday.<span style="color: #800080">name<span style="color: #000000">)<span style="color: #0000ff">print(holiday.<span style="color: #800080">doc<span style="color: #000000">) ret = holiday(3) <span style="color: #008000">#<span style="color: #008000">inner <span style="color: #0000ff">print<span style="color: #000000">(ret) <span style="color: #008000">#<span style="color: #008000"> def wahaha():<span style="color: #008000"> <span style="color: #008000"> '''<span style="color: #008000"><span style="color: #008000"> 一个打印娃哈哈的函数<span style="color: #008000"><span style="color: #008000"> :return:<span style="color: #008000"><span style="color: #008000"> '''<span style="color: #008000"><span style="color: #008000"> print('娃哈哈')<span style="color: #008000">#<span style="color: #008000"> print(wahaha.name) #查看字符串格式的函数名<span style="color: #008000"> <span style="color: #008000"> print(wahaha.doc) #document。查看函数的注释内容2、带参数的装饰器 = inner(*args,**===func(*args,**=(end-=func(*args,** #func1 = timmer(func1)
0.1()
3,多个装饰器装饰一个函数 (=(<span style="color: #0000ff">def<span style="color: #000000"> wrapper2(func):
<span style="color: #0000ff">def<span style="color: #000000"> inner2(): <span style="color: #0000ff">print(<span style="color: #800000">'<span style="color: #800000">wrapper2,before func<span style="color: #800000">'<span style="color: #000000">) ret =<span style="color: #000000"> func() <span style="color: #0000ff">print(<span style="color: #800000">'<span style="color: #800000">wrapper2,after func<span style="color: #800000">'<span style="color: #000000">) <span style="color: #0000ff">return<span style="color: #000000"> ret <span style="color: #0000ff">return<span style="color: #000000"> inner2 <span style="color: #0000ff">def<span style="color: #000000"> wrapper3(func): @wrapper3 <span style="color: #0000ff">print(f()) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |