python使用装饰器会改变被装饰函数的函数名,如何去解决

import functools
# 使用自定义装饰器会改变被装饰的函数的函数名,解决方法:
# 第一种 import functools  @functoool.wraps(func)
# 第二种 cell_fun.__name__ = func.__name__
def set_fun(func):
    # @functools.wraps(func)                
    def cell_fun():
        print('cell_fun')
    cell_fun.__name__ = func.__name__
    return cell_fun

@set_fun
def a():
    print('a run')
    
print(a.__name__)

猜你喜欢

转载自blog.csdn.net/qq_35867759/article/details/80430363