装饰器
Posted 一锅煮不下
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了装饰器相关的知识,希望对你有一定的参考价值。
定义
1.开放封闭原则,对拓展开放,对修改封闭
2装饰器,装饰器本质可以任意调用
原则:
1.不修改源代码
2,不修改调用方法
目标:添加新功能
实例:
import time import random def timmer(func): def wrapper(): start_tim=time.time() func() end_tim=time.time() print(end_tim-start_tim) return wrapper def index(): time.sleep(random.randrange(1,5)) print(\'sssssssss\') index=timmer(index) index()
装饰器的语法
@timmer #相当于index=timmer(index)
def index():
time.sleep(random.randrange(1,5))
print(\'sssssssss\')
================== 在使用的@必须要跟在index上面
闭包函数:
自带作用域
惰性计算 仅定义 ,后期调用才执行
使用了index__warpped__()可以使用原始功能但是一般不会这么用
以上是关于装饰器的主要内容,如果未能解决你的问题,请参考以下文章