第11天装饰器基础

小知识:

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()

 

猜你喜欢

转载自www.cnblogs.com/wanghanyao/p/10177260.html