装饰器

装饰器:本质还是一个函数(装饰其他函数),为了替其他函数添加附加功能

原则:1、不修改被装饰函数的源代码。2、不修改被装饰函数的调用方式

实现装饰器必要条件:

一、函数即‘变量’

二、高阶函数

三、嵌套函数

计算一个函数运行时间:

import time
def timer(func): #timer(aa) func=aa 高阶函数
def deco(*args,**kwargs): # 内嵌函数
start_time=time.time()
func(*args,**kwargs)
stop_time=time.time()
print('run time:%s'%(stop_time-start_time))
return deco
@timer #aa=timer(aa)
def aa():
time.sleep(3)
print('i am aa!')
@timer
def bb(name):
time.sleep(1)
print('i am ',name)

aa()
bb('zhow')
posted @ 2018-04-30 08:11  zhow  阅读(116)  评论(0)    收藏  举报