装饰器

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__()可以使用原始功能但是一般不会这么用

 

以上是关于装饰器的主要内容,如果未能解决你的问题,请参考以下文章

Python面向对象学习之八,装饰器

thymeleaf 片段渲染后重新加载 javascript

代码缺乏装饰?使用ts装饰器来装饰你的代码

代码缺乏装饰?使用ts装饰器来装饰你的代码

代码缺乏装饰?使用ts装饰器来装饰你的代码

代码缺乏装饰?使用ts装饰器来装饰你的代码