from functools import wraps
def decorator(func):
# @wraps(func)
def wrapper(*args, **kwargs):
result = func(*args, **kwargs)
return result
return wrapper
# @decorator
def fun_test():
print(8988)
if __name__ == '__main__':
fun_test()
print(fun_test.__name__)
可以看到不用装饰器的时候函数__name__属性可以得到函数名
再看用装饰器后函数的名称:
可以得出结论:
当函数被装饰器装饰时,名称会变成装饰器函数
再来看加上wraps装饰后:
总结:wraps装饰器可以还原被装饰的函数原有的属性