使用在Python 2.4 or Later.
两种调用形式:
1.不带参数



Python最后会处理为:

,可扩展为:






最终Python会处理为:

2.带参数:




Python会处理为:



Python先执行A(args)得到_deco,然后跟第一种方式一样的处理函数f。
对应的两种函数定义方法:
第一种:







A对f处理完后,仍返回函数对象。 如果要返回一个新的函数,可以为:









注意:new_func的定义形式要和待处理的函数相同。
如果想根据原来函数的结果进行一些处理:












第二种:










文档上说:如果你的decorator在调用时使用了参数,那么你的decorator函数只会使用这些参数进行调用。因此你需要返回一个新的decorator函数,就和第一种方式定义形式一致了。