@functools.wraps()
本文全篇摘录自 https://blog.csdn.net/liuzonghao88/article/details/103586634
写的通俗易懂,我就直接搬过来了
功能
Python装饰器(decorator)在实现的时候,被装饰后的函数其实已经是另外一个函数了(函数名等函数属性会发生改变),为了不影响,Python的functools包中提供了一个叫wraps的decorator来消除这样的副作用。写一个decorator的时候,最好在实现之前加上functools的wrap,它能保留原有函数的名称和函数属性
不加wraps