不带参数的装饰器
1 |
|
相当于:
1 | func = decorator(func) |
多个装饰器
1 |
|
相当于:
1 | func = decorator_one(decorator_two(func)) |
带参数的装饰器
1 |
|
相当于:
1 | func = decorator(arg1, arg2)(func) #这意味着decorator(arg1, arg2)这个函数需要返回一个“真正的decorator” |
不带参数的类装饰器
1 | class myDecorator(object): |
装饰器的地方相当于:
1 | aFunction = myDocorator(aFunction).__call__ |
带参数的类装饰器
1 | class myDecorator(object): |
装饰器的地方相当于:
1 | aFunction = myDecorator('aha').__call__(aFunction) |
学习资料参考于:
http://coolshell.cn/articles/11265.html
http://blog.jkey.lu/2013/03/15/python-decorator-and-functools-module/
http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386819879946007bbf6ad052463ab18034f0254bf355000