使用在Python 2.4 or Later.两种调用形式:1.不带参数
Python最后会处理为:
,可扩展为:
最终Python会处理为:
2.带参数:
Python会处理为:
Python先执行A(args)得到_deco,然后跟第一种方式一样的处理函数f。对应的两种函数定义方法:第一种:
A对f处理完后,仍返回函数对象。 如果要返回一个新的函数,可以为:
注意:new_func的定义形式要和待处理的函数相同。如果想根据原来函数的结果进行一些处理:
第二种:
文档上说:如果你的decorator在调用时使用了参数,那么你的decorator函数只会使用这些参数进行调用。因此你需要返回一个新的decorator函数,就和第一种方式定义形式一致了。