小知识:
1,time模块
import time
time.sleep(5) #5秒内什么都不干
print('等了你5秒')
time.time()是从1970年到现在过的秒数。
import time:
a = time.time()
...
b = time.time()
a - b 就是中间...执行的时间秒数。
装饰器的标准用法:
上面是一个在常用函数中增加程序运行计时功能的案例。使用了闭包的方法。多理解一下。
这时,timmer就是一个装饰器。
def func():
time.sleep(0.01)
print(‘老板好,同事好,大家好’)
def time(f): #装饰器的名称
def inner(): #这就一个装饰器。也是一个闭包
start = time.time()
f() #装饰了这个函数。
end = time.time()
print(end - start)
return inner #返回了闭包的结果。注意一定不能加括号,不然就不能返回inner的内存地址了。
func = timmer(func)
func()
一,装饰器的开放封闭原则:
开放:对拓展是开放的(可以对函数和功能进行拓展,而不修改源代码)
封闭:对修改是封闭的(不能直接修改已经写好了的代码)
意义:维护代码的稳定性,在大公司中团体编程的时候非常重要。
使用装饰器就可以做到不修改原本功能的情况下,还可以给函数添加功能。
二,装饰器书写的模式:
上述代码def func()处可以市容如下写法的简写:(但是记得先把装饰器写在需要定义的函数上面。)
@timmer #@装饰器函数名
def func()