1,、概念
装饰器英文名Decorator,装饰器的作用就是为已经存在的对象添加额外的功能。总的来说,装饰器其实就是一个函数,一个用来包装函数的函数,所以他的参数是被修饰的函数对象,返回一个修改之后的函数对象,将其重新赋值原来的标示符,并永久丧失对原始函数对象的访问。
2、装饰器语法
1.def deco(func): 2. print func 3. return func 4[email protected] 5.def foo():pass 6.foo()
第一个函数deco是装饰函数,它的参数就是被装饰的函数对象。我们可以在deco函数内对传入的函数对象做一番“装饰”,然后返回这个对象。
这只是无参数装饰器,还可以让装饰器带参数甚至是带类参数等等,用法很灵活。
装饰器可以让函数轻装上阵,更重要的是将函数的约束放置于接口处,使意图更加明了,同时又不增加调用者的负担。
下面是参考资料,是我在学习装饰器过程中在网上发现的相当好的文章
1. Python装饰器学习 http://blog.csdn.net/thy38/article/details/4471421
2. Python装饰器与面向切面编程 http://www.cnblogs.com/huxi/archive/2011/03/01/1967600.html
时间: 2024-10-07 05:30:12