#coding:gbk
import functools,time
def decorator(func):
@functools.wraps(func) #这里用来把需要被装饰的函数名字保留下来,不然装饰后名字变成了wrapper
def wrapper(*args, **kw):
print('ks')
print('%s excuted %s ms' %(func.__name__, time.strftime('%H.%M.%S')))
func(*args,**kw)
print('js')
return func(*args, **kw) #这里执行和return有差别吗?这里和上面的func有什么区别
return wrapper #三层嵌套和两层嵌套有什么区别?三层嵌套本身传入了其他的参数
装饰器:在不改变函数定义(这里的定义范围很广)的情况下,动态的增加函数功能
装饰器
最新推荐文章于 2019-06-26 16:48:00 发布