概念
装饰器(Decorator)的基本定义:“装饰器的功能是将被装饰的函数当作参数传递给与装饰器对应的函数(名称相同的函数),并返回包装后的被装饰的函数”。
装饰器的定义是:装饰器实质上是一个函数。它把一个函数作为输入并且返回另外一个函数。其实其是闭包概念的深化
优点
抽离出大量函数中与函数功能本身无关的雷同代码并继续重用
可以将函数“修饰”为完全不同的行为,可以有效的将业务逻辑正交分解,如用于将权限和身份验证从业务中独立出来
概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能
装饰器入门
In [43]: def foo():
...: print('in foo()')
...: foo()
...:
in foo()
In [44]:
In [44]: import time
In [45]: def foo():
...: start = time.clock()
...: print('in foo()')
...: end = time.clock()
...: print('used:', end - start)
...: foo()
...:
in foo()
used: 2.1999999997746045e-05
In [46]: