标签:blog http io ar 使用 for strong sp div
其实总体说起来,装饰器其实也就是一个函数,一个用来包装函数的函数,返回一个修改之后的函数对象,将其重新赋值原来的标识符,并永久丧失对原始函数对象的访问。
2. 装饰器语法
(1)无参数装饰器
第一个函数deco是装饰函数,它的参数就是被装饰的函数对象。我们可以在deco函数内对传入的函数对象做一番“装饰”,然后返回这个对象(记住一定要返回 ,不然外面调用foo的地方将会无函数可用。实际上此时foo=deco(foo))
我写了个小例子,检查函数有没有说明文档:
(2)有参数装饰器
第一个函数decomaker是装饰函数,它的参数是用来加强“加强装饰”的。由于此函数并非被装饰的函数对象,所以在内部必须至少创建一个接受被装饰函数的函数,然后返回这个对象(实际上此时foo=decomaker(arg)(foo))
这个我还真想不出什么好例子,还是见识少啊,只好借用同步锁的例子了:
调用时还是updae(data)。
同时还可以将多个装饰器组合 使用:
学后的总是感觉就是:装饰器可以让函数轻装上阵,更重要的是将函数的约束放置于接口处,使意图更加明了,同时又不增加调用者的负担。
标签:blog http io ar 使用 for strong sp div
原文地址:http://www.cnblogs.com/sweet521/p/4033451.html