原则:
依赖倒置:
开放封闭:对扩展是开发的、对修改是封闭的
装饰器作用:不想修改函数的调用方式,但是想在原来的函数前后添加功能
装饰器固定模式:
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需注意