1、__name__

用于记录函数的名字

这样的结果是没有问题的,add函数的名字就是add

把装饰器加上之后,就会发现add的name不再是add,而是wrapper,装饰器里面的函数

原因:

这行代码等价于add = greet(add),然后greet(add)= wrapper,所以已经不再是add了,已经被换成wrapper了

这就会导致如果以后需要调用__name__里面的东西就会出问题

2、wraps装饰器

在真正执行的函数外面的函数加上wraps(函数),注意一定需要在些wraps这个装饰器