一、装饰器伪代码
1. 构建装饰器
# <>括住部分均需要自定义,其余部分可以照搬
# <decoratorName> --> 装饰器名称
# <decoratorCode1> --> 被装饰函数执行之前的执行的语句
# <decoratorCode2> --> 被装饰函数执行之后的执行的语句
def <decoratorName>(func):
def wrapper(*args,**kwargs):
<decoratorCode1>
func(*args,**kwargs)
<decoratorCode2>
return wrapper # 返回函数
2. 装饰器的使用
# <>括住部分均需要自定义,其余部分可以照搬
@<decoratorName>
def <funcName>(<params>):
<codes>
二、装饰器实例 – 函数计时器
1. 源代码
import time
def spendtime(func):
def wrapper(*args,**kwargs):
t_start=time.perf_counter()
func(*args,**kwargs)
t_end=(time.perf_counter())
print(f"函数本次执行花费时间为{t_end-t_start}s")
return wrapper
@spendtime
def demo(n):
for i in range(n):
print(i)
time.sleep(1)
if __name__ == '__main__':
demo(6)
2. 执行结果