Python装饰器是一个很出名的设计模式,它主要的功能就是不改变函数已有功能的情况下对函数起到一个锦上添花的作业,使函数的功能更加丰富,在插入日志,性能测试,缓存机制和权限验证都是比较好的左右。不同的函数可以使用同一个装饰器,所以它和函数本身不存在什么必然的联系。
从一个函数分别开始处和退出时输出日志,这被称为一个横切面,这种方式的编程我们称为AOP面向切面编程,其目的在于解耦和复用。
def timeit(func):
def tim(*args,**kwargs):
print('start: ')
func(*args,**kwargs);
print('end .');
return tim;
@timeit
def sayHi(name):
print('hi ',name)
sayHi('Maty')
start:
hi Maty
end .