python装饰器

原则:

依赖倒置:

开放封闭:对扩展是开发的、对修改是封闭的

 装饰器作用:不想修改函数的调用方式,但是想在原来的函数前后添加功能

装饰器固定模式:

import time

def func():
    time.sleep(0.01)
    print('hello')

def timmer(f): # f也是一个变量 是一个闭包
                # f=>func
    def inner():
        start = time.time()
        f()
        print(time.time()-start)
    return inner

func = timmer(func) # fun = inner
func() # 执行 inner,内存没有消失f = func()

还有带返回值的、带参数的。

 语法糖:

import time
def timmer(f):
    def inner():
        start = time.time()
        f()
        print(time.time()-start)
    return inner
@timmer
def func():
    time.sleep(0.01)
    print('hello')
# func = timmer(func)
func()

有语法糖@timmer()就可以把func = timmer(func)去掉

 背:

首先定义一函数

中间再加一函数

然后要加返回值

修饰函数中间套

语法糖呀真好吃

修饰函数写这里

传参return需注意

posted @ 2019-10-09 11:50  小然同学  阅读(145)  评论(0编辑  收藏  举报