装饰器装饰某个函数的时候,会对函数的函数名进行修改,修改为装饰器的内部函数名
当flask中在py文件里装饰多个视图函数的时候会出现函数名重名的错误
解决办法:
方法一:
调用functools
import functools
def set_fun(f):
@functools.wraps(f)
def call_fun(*args, **kwargs):
print(“添加额外功能”)
return f(*args, **kwargs) # 返回原先函数的返回值
return call_fun
方法二:
def set_fun(f):
def call_fun(*args, **kwargs):
print(“添加额外功能”)
return f(*args, **kwargs) # 返回原先函数的返回值
# 第二种:把被装饰的原函数的函数名给现在
call_fun.name = f.name
return call_fun