1, 看到@时候, 程序已经开始执行了. 所以@实际上是立即执行的
2, @后面的跟着函数名, 该函数(f1)是之前定义过的. 再后面跟着一个函数(f2), f2是f1的入口.
那么执行顺序是, f2 -> f1. 实际结果类似于f2+f1
所以,本质上用f1 去"修饰"了f2, 这个修饰作用就是把f1的功能加进了 f2.
refer to:
http://blog.csdn.net/972301/article/details/59537712
http://www.cnblogs.com/xupeizhi/archive/2013/02/07/2908600.html
https://foofish.net/python-decorator.html
http://www.wklken.me/posts/2012/10/27/python-base-decorator.html
http://www.runoob.com/python/python-func-classmethod.html
http://blog.51cto.com/rmeos/1722304